SQL Server 2008 Express授权用户权限

8

如何在不通过GUI的情况下,使用适当的SQL命令将Windows用户账户添加到SQL Server 2008数据库的权限中?例如,我想给某人读取权限,另一个人则有读取和写入权限。

1个回答

17

这是一个两步骤的过程:

  • 首先,您需要基于 Windows 凭据为该用户创建一个登录账号

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS
    

    这是设置连接到您的SQL Server的基本权限。

  • 一旦您拥有一个登录名,您可以在每个想要授予该登录名某些权限的数据库中创建一个用户

  • CREATE USER Johnnie FOR LOGIN Domain\Johnnie;
    
  • 为了在你的数据库中授予读取权限,将db_datareader角色指派给该用户。

  • sp_addrolemember @rolename = 'db_datareader', @membername = 'Johnnie'
    
  • 要授予用户对数据库中每个表的读写权限,需要将db_datareaderdb_datawriter角色都分配给该用户。

  • 如果您需要更精细的控制哪些表可以进行读写操作,您需要手动管理权限,例如创建自己的数据库角色并向这些角色分配授权,然后将用户添加到您创建的这些应用特定角色中。


2
此外,请确保您已在SQL Server配置管理器工具中启用了TCP/IP连接。这通常只会在您尝试允许远程连接到本地计算机时出现问题。(今天早些时候我就被这个问题困扰过。 <g>) - Lee Grissom
你好,我允许远程连接到我的本地机器。我创建了用户和角色,但是用户必须能够查看SQL Server代理和作业活动。我该如何为创建作业定义角色? - s.esin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接