zoukankan      html  css  js  c++  java
  • 如何SQL Server 2005中使用非管理员角色(sysadmin)执行OpenRowSet

    SQL Server 2005的安全的确提高了不少,普通用户运行一个BULK INSERT和OpenRowSet都要授权。

    要执行BULK INSERT,只需要授予用户bulkadmin权限,但如果要执行OpenRowSet,默认情况下只有sysadmin权限才行的。

    “不行,我们不会让系统以sa权限运行,这样很不安全,”,我们的银行客户说。

    在网上找了半天,无解!天无绝人之路,查了下MSDN终于找到方法了:

    1. 检查你的系统注册表,是否有以下Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\<instanceName, 默认是 MSSQLServer>\Providers\<provider name, 这里我们假设是Microsoft.Jet.OLEDB.4.0>
    如果没有,加上它。再在这个key下面加一个DWORD值,名称:DisallowAdhocAccess,值:默认,0


    2. 再检查你的系统注册表,是否有以下Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers\<provider name, 这里我们假设是Microsoft.Jet.OLEDB.4.0>
    如果没有,加上它。再在这个key下面加一个DWORD值,名称:DisallowAdhocAccess,值:默认,0

    3. 再检查你的系统注册表,是否有以下Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\Providers\<provider name, 这里我们假设是Microsoft.Jet.OLEDB.4.0>
    如果没有,加上它。再在这个key下面加一个DWORD值,名称:DisallowAdhocAccess,值:默认,0

    4. 再检查你的系统注册表,是否有以下Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.3\Providers\<provider name, 这里我们假设是Microsoft.Jet.OLEDB.4.0>
    如果没有,加上它。再在这个key下面加一个DWORD值,名称:DisallowAdhocAccess,值:默认,0

    为了保险期间,搜索一下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下面的其他的DisallowAdhocAccess值,如果是1,把它改为0.

    好,重启你的数据库服务,不用重启机子。搞定!

  • 相关阅读:
    C# SqlDataAdapter
    数据库游标
    什么是DooPHP Framework ?
    健康世界官方网站绿色健康知识门户网站源码www.jiankangshijie.com
    蓝色教程资讯、软件下载网站风格全套织梦模板
    分享一本正在看的电子书,相当不错
    DooPHP中国官方微博
    DooPHP Framework 中文手册 v1.2
    吉林织梦网络公司网站风格模板 www.thinkphp.biz
    CSS HACK:IE6、IE7、IE8、Firefox兼容性问题解决方案
  • 原文地址:https://www.cnblogs.com/rockniu/p/980781.html
Copyright © 2011-2022 走看看