我需要能够通过SQL Server身份验证建立ODBC连接。
在SSMS中,如何为用户授予权限,使其能够在特定数据库上拥有“所有权利”?
有没有办法用SSMS图形化地做到这一点?
我需要能够通过SQL Server身份验证建立ODBC连接。
在SSMS中,如何为用户授予权限,使其能够在特定数据库上拥有“所有权利”?
有没有办法用SSMS图形化地做到这一点?
Answers:
如果要授予用户所有读取权限,则可以使用:
EXEC sp_addrolemember N'db_datareader', N'your-user-name'
这会将默认db_datareader
角色(所有表的读取权限)添加到该用户。
还有一个db_datawriter
角色-为您的用户赋予所有表所有写权限(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权限。
这一切在SQL Server的MSDN联机丛书中都有很好的记录。
是的,您也可以以图形方式进行操作-在SSMS中,转到数据库,然后Security > Users
在要授予权限的用户上单击鼠标右键,然后Properties
在底部看到“数据库角色成员身份”,您可以在其中添加用户到数据库角色。
如果您确实希望他们拥有所有权利:
use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go