我希望一组用户对SQL Server上所有数据库(我正在使用SS2008)的所有表和视图拥有只读访问权限。我希望这些用户拥有对所有未来表格和视图的只读访问权限。如何授予用户对所有数据库的只读访问权
你将如何设置?
我希望一组用户对SQL Server上所有数据库(我正在使用SS2008)的所有表和视图拥有只读访问权限。我希望这些用户拥有对所有未来表格和视图的只读访问权限。如何授予用户对所有数据库的只读访问权
你将如何设置?
将用户添加到db_datareader
角色
例如
exec sp_addrolemember 'db_datareader',YourLogin
信息关于db_datareader
:http://msdn.microsoft.com/en-us/library/ms188629(SQL.90).aspx
你应该只能够将用户在每个加入到拥有db_datareader数据库角色数据库。你可以编写一个脚本来循环访问数据库并为你做。
DECLARE @dbname VARCHAR(50)
DECLARE @statement NVARCHAR(max)
DECLARE db_cursor CURSOR
LOCAL FAST_FORWARD
FOR SELECT name FROM MASTER.dbo.sysdatabases OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbname
WHILE @@FETCH_STATUS = 0
BEGIN
/* This sentence will be executed to gran the privileges. */
SELECT @statement = 'use ['[email protected]+']; '+'EXEC sp_addrolemember N''db_datareader'', N''userPeter''';
EXEC sp_executesql @statement
FETCH NEXT FROM db_cursor INTO @dbname
END
在出现的位置userPeter
您必须编写您的用户名。
这给只读访问单个数据库,而不是所有数据库。您必须为每个数据库执行此操作。 – 2016-01-27 15:09:07