我需要能够通过SQL Server身份验证建立ODBC连接。
在SSMS中,如何授予用户在特定数据库上拥有所有权利的权限?
有没有办法用SSMS以图形方式做到这一点?
答案 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
添加到您可以在底部看到“数据库角色成员资格”,您可以在其中将用户添加到数据库角色。
答案 1 :(得分:57)
如果您真的希望他们拥有所有权利:
use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
答案 2 :(得分:18)
如下所示。它将使用户数据库所有者。
EXEC sp_addrolemember N'db_owner', N'USerNAme'