我希望在SQL Server上(我使用的是SS2008),让一组用户对所有数据库上的所有表和视图具有只读访问权限。我希望这些用户对于所有未来的表和视图也都具有只读访问权限。
你可以如何设置?
你可以如何设置?
将用户添加到db_datareader
角色中
示例
exec sp_addrolemember 'db_datareader',YourLogin
db_datareader
的相关信息:http://msdn.microsoft.com/en-us/library/ms188629(SQL.90).aspx
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 ['+@dbname+']; '+'EXEC sp_addrolemember N''db_datareader'', N''userPeter''';
EXEC sp_executesql @statement
FETCH NEXT FROM db_cursor INTO @dbname
END
userPeter
的位置,您必须填写您的用户名。
GRANT CONNECT ANY DATABASE TO <SQL_Login>;
以及GRANT SELECT ALL USER SECURABLES TO <SQL_Login>;
将比旧的方法更容易。 - Dave Mason