【发布时间】:2011-04-29 06:10:41
【问题描述】:
我需要能够通过 SQL Server 身份验证建立 ODBC 连接。
在 SSMS 中,如何授予用户对特定数据库拥有 ALL RIGHTS 权限的权限?
有没有办法使用 SSMS 以图形方式执行此操作?
【问题讨论】:
标签: sql sql-server sql-server-2008 ssms
我需要能够通过 SQL Server 身份验证建立 ODBC 连接。
在 SSMS 中,如何授予用户对特定数据库拥有 ALL RIGHTS 权限的权限?
有没有办法使用 SSMS 以图形方式执行此操作?
【问题讨论】:
标签: sql sql-server sql-server-2008 ssms
如果你想给你的用户所有读取权限,你可以使用:
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 和“数据库角色成员”,您可以在其中将用户添加到数据库角色。
【讨论】:
如果您真的希望他们拥有所有权利:
use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
【讨论】:
如下所示。它将成为用户数据库的所有者。
EXEC sp_addrolemember N'db_owner', N'USerNAme'
【讨论】: