--
--5.7.3节示例
--
--赋予test1用户db_datareader角色
USE [AdventureWorks]
GO
EXEC sp_addrolemember 'db_datareader', 'test1' --为用户添加角色
GO
--删除test1用户的db_datareader角色
USE [AdventureWorks]
GO
EXEC sp_droprolemember 'db_datareader', 'test1' --删除test1用户的db_datareader角色
GO
--
--5.7.4节示例
--
--创建角色
USE AdventureWorks
GO
CREATE role HRReader --创建角色名
GO
GRANT SELECT ON SCHEMA::HumanResources --角色权限
TO HRReader
--删除角色
USE AdventureWorks
GO
DROP role HRReader
--创建应用程序角色
USE AdventureWorks
GO
CREATE APPLICATION ROLE [PersonReader]
WITH DEFAULT_SCHEMA = [dbo],
PASSWORD =’123’
--为应用程序角色分配权限
USE AdventureWorks;
GO
GRANT SELECT
ON SCHEMA::Person
TO PersonReader
--使用testuser1访问数据库
USE AdventureWorks;
GO
SELECT TOP 10 *
FROM Sales.Customer
GO
SELECT * --这里将会抛出异常,因为没有权限访问
FROM Person.AddressType
GO
--激活应用程序角色
USE AdventureWorks;
GO
EXEC sp_setapprole PersonReader,'123' --激活应用程序角色
GO
SELECT TOP 10 * --这里抛出异常,因为应用程序角色PersonReader并没有对该表的访问权限
FROM Sales.Customer
GO
SELECT * --正常访问
FROM Person.AddressType
--删除应用程序角色
USE AdventureWorks;
GO
DROP APPLICATION ROLE PersonReader