我需要能够通过SQL Server身份验证建立ODBC连接。
在SSMS中,我如何授予用户对特定数据库拥有所有权限的权限?
是否有一种使用SSMS图形化界面完成这个任务的方法?
我需要能够通过SQL Server身份验证建立ODBC连接。
在SSMS中,我如何授予用户对特定数据库拥有所有权限的权限?
是否有一种使用SSMS图形化界面完成这个任务的方法?
如果您想给用户所有的读取权限,可以使用:
EXEC sp_addrolemember N'db_datareader', N'your-user-name'
这将为该用户添加默认的db_datareader
角色(对所有表的读取权限)。
还有一个db_datawriter
角色-它会给您的用户所有表的写入权限(插入,更新,删除):
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 Books Online中有详细记录。
是的,您也可以通过图形界面完成操作——在SSMS中,进入您的数据库,然后点击Security > Users
,右键单击要授予权限的用户,然后选择Properties
,可以看到底部的“Database role memberships”选项,从而将用户添加到数据库角色中。
use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
像下面这样。它将使用户成为数据库所有者。
EXEC sp_addrolemember N'db_owner', N'USerNAme'