SQL Server 2008:如何为用户名授予权限?

时间:2010-10-22 15:57:56

标签: sql sql-server sql-server-2008 ssms

我需要能够通过SQL Server身份验证建立ODBC连接。

在SSMS中,如何授予用户在特定数据库上拥有所有权利的权限?

有没有办法用SSMS以图形方式做到这一点?

3 个答案:

答案 0 :(得分:131)

如果您想为您的用户提供所有读取权限,您可以使用:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

将该默认db_datareader角色(对所有表的读取权限)添加到该用户。

还有一个db_datawriter角色 - 它为您的用户提供所有表的所有WRITE权限(INSERT,UPDATE,DELETE):

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

如果您需要更精细,可以使用GRANT命令:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

等等 - 你可以精确地给出特定表的SELECT,INSERT,UPDATE,DELETE权限。

MSDN Books Online for SQL Server中记录了这一点。

是的,您也可以用图形方式进行操作 - 在SSMS中,转到您的数据库,然后Security > Users,右键单击要授予其权限的用户,然后Properties添加到您可以在底部看到“数据库角色成员资格”,您可以在其中将用户添加到数据库角色。

alt text

答案 1 :(得分:57)

如果您真的希望他们拥有所有权利:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go

答案 2 :(得分:18)

如下所示。它将使用户数据库所有者。

EXEC sp_addrolemember N'db_owner', N'USerNAme'