none
sql server 2005远程权限该如何配置? RRS feed

  • 问题

  • 大家好!

    我想实现如下效果:

    一台服务器运行sql 2005,提供远程服务,其他n台服务器(可能是iis,可能是各类应用)连接到这台服务器进行sql server操作。

    出于安全因素,我不能给每个人都有sa权限,比如我设置了n各用户:user1,user2,user3....

    然后每个人都有一个库,比如db1,db2,db3...

    我想让user1只能操作db1,user2只能db2,user3只能db3。它可以对他的库做任何操作,但是仅此而已,不能改sqlserver设置,也不能动其他人的表。

    这个地方的权限该如何设置呢?

    我设置了user1服务器角色Public,映射库那里是全选的。但是实际远端的iis用user1连过来就报错,提示无法连接。

    谢谢大家了。

    2012年10月14日 8:52

答案

  • 看看这个文章,不过是英文的:http://support.microsoft.com/kb/914277#method2
    2012年10月14日 11:11
    版主
  • 我设置了user1服务器角色Public,映射库那里是全选的。但是实际远端的iis用user1连过来就报错,提示无法连接。

    具体的报错信息是什么?你的IIS程序是用SQL账户连接的吗?如果是的话,直接用SSMS连接数据库会不会报错?

    另外如果你将所有的权限都映射给了用户那么用户就是DB OWNER。SQL Server提供了Pre-defined database-level roles,你可以根据你的安全要求对用户进行赋予权限:

    http://msdn.microsoft.com/en-us/library/ms189121.aspx


    2012年10月14日 11:20
  • 大家好!

    我想实现如下效果:

    一台服务器运行sql 2005,提供远程服务,其他n台服务器(可能是iis,可能是各类应用)连接到这台服务器进行sql server操作。

    出于安全因素,我不能给每个人都有sa权限,比如我设置了n各用户:user1,user2,user3....

    然后每个人都有一个库,比如db1,db2,db3...

    我想让user1只能操作db1,user2只能db2,user3只能db3。它可以对他的库做任何操作,但是仅此而已,不能改sqlserver设置,也不能动其他人的表。

    这个地方的权限该如何设置呢?

    我设置了user1服务器角色Public,映射库那里是全选的。但是实际远端的iis用user1连过来就报错,提示无法连接。

    谢谢大家了。

    In this case, just give user1 dbo rights in db1. Don't choose all db roles, db_deny* roles will overwrite other permissions.
    2012年10月14日 15:36
  • 映射库那里全选?user1只要对db1有勾选的dbowner就可以了吗?还有你的连接字符串有没有错误

    给我写信: QQ我:点击这里给我发消息

    2012年10月15日 3:38
  • 你好,

    首先你要确保你的sql 2005不是windows认证模式,并且确保iss远程连接的登录sql的用户名和密码是正确的。

    然后检查下你的Windows 防火墙,看SQL Server2005是否在允许的列表,如果不是请参照下面的步骤为 “SQL Server 2005”创建例外:

      1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”.

      2.在“添加程序窗口”中单击“浏览”.

      3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”.

      单击“确定”返回

      注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。

    最后你要user只访问特定的db,可以设置让user1只对db1有dbonwer 的权限,然后对其他的数据库没有权限就可以了。

    希望以上的信息对你可以有帮助,如果问题仍然没有得到解决,请您把连接出错的错误信息帖出来一下。

    Thanks,
    Amy peng


    Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.




    2012年10月16日 9:01
    版主

全部回复

  • 看看这个文章,不过是英文的:http://support.microsoft.com/kb/914277#method2
    2012年10月14日 11:11
    版主
  • 我设置了user1服务器角色Public,映射库那里是全选的。但是实际远端的iis用user1连过来就报错,提示无法连接。

    具体的报错信息是什么?你的IIS程序是用SQL账户连接的吗?如果是的话,直接用SSMS连接数据库会不会报错?

    另外如果你将所有的权限都映射给了用户那么用户就是DB OWNER。SQL Server提供了Pre-defined database-level roles,你可以根据你的安全要求对用户进行赋予权限:

    http://msdn.microsoft.com/en-us/library/ms189121.aspx


    2012年10月14日 11:20
  • 大家好!

    我想实现如下效果:

    一台服务器运行sql 2005,提供远程服务,其他n台服务器(可能是iis,可能是各类应用)连接到这台服务器进行sql server操作。

    出于安全因素,我不能给每个人都有sa权限,比如我设置了n各用户:user1,user2,user3....

    然后每个人都有一个库,比如db1,db2,db3...

    我想让user1只能操作db1,user2只能db2,user3只能db3。它可以对他的库做任何操作,但是仅此而已,不能改sqlserver设置,也不能动其他人的表。

    这个地方的权限该如何设置呢?

    我设置了user1服务器角色Public,映射库那里是全选的。但是实际远端的iis用user1连过来就报错,提示无法连接。

    谢谢大家了。

    In this case, just give user1 dbo rights in db1. Don't choose all db roles, db_deny* roles will overwrite other permissions.
    2012年10月14日 15:36
  • 映射库那里全选?user1只要对db1有勾选的dbowner就可以了吗?还有你的连接字符串有没有错误

    给我写信: QQ我:点击这里给我发消息

    2012年10月15日 3:38
  • 你好,

    首先你要确保你的sql 2005不是windows认证模式,并且确保iss远程连接的登录sql的用户名和密码是正确的。

    然后检查下你的Windows 防火墙,看SQL Server2005是否在允许的列表,如果不是请参照下面的步骤为 “SQL Server 2005”创建例外:

      1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”.

      2.在“添加程序窗口”中单击“浏览”.

      3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”.

      单击“确定”返回

      注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。

    最后你要user只访问特定的db,可以设置让user1只对db1有dbonwer 的权限,然后对其他的数据库没有权限就可以了。

    希望以上的信息对你可以有帮助,如果问题仍然没有得到解决,请您把连接出错的错误信息帖出来一下。

    Thanks,
    Amy peng


    Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.




    2012年10月16日 9:01
    版主