在SQL Server 2005中,有以下几个概念需要区分:
登录(Login) 数据库用户(User) 数据库角色(Role) 应用程序角色(Application Role) 登录是在使用混合验证模式时候,登录到SQL Server的用户。使用语句如下: CREATE LOGIN Mary WITH PASSWORD = ' asdflk ' MUST_CHANGE,CHECK_EXPIRATION = ON ,CHECK_POLICY = ON ; 可以使用如下的语句查看登录名: select * from sys.sql_logins 以下是一些授权语句: -- 在服务器角色中增加登录名 EXECUTE sp_addsrvrolemember ' Mary ' , ' sysadmin ' ; -- 从服务器角色中删除掉登录名 EXECUTE sp_dropsrvrolemember ' Mary ' , ' sysadmin ' ; -- 单独授予权限 GRANT ALTER TRACE TO Mary; 数据库用户和角色:单单可以让用户登录到数据库是不够的,我们需要对这些登录进行更加细致的权限的控制,这里使用了数据库用户和角色的方法。这里使用了RBAC(基于角色的权限控制),将权限赋予到角色身上,在将用户赋予角色,从而减少了维护权限结构的工作量。创建用户并联系到登录 CREATE LOGIN Peter WITH PASSWORD = ' asdf ' ; USE DBNAME; GO CREATE USER Peter FOR LOGIN Peter; 授权操作: -- 增加用户到角色 EXECUTE sp_addrolemember ' Auditors ' , ' Peter ' ; -- 检查是否是角色 SELECT IS_MEMBER ( ' db_owner ' ) -- 去掉用户 EXECUTE sp_droprolemember ' Auditors ' , ‘Peter’; -- 小权限粒度的授予 GRANT BACKUP DATABASE TO Peter 应用程序角色应用程序角色权限是特殊的数据库劫色,用户允许用户通过特定应用程序获取特定的数据。以下是一些代码: USE DBNAME GO CREATE APPLICATION ROLE FinancialRole WITH PASSWORD = ' ASDF '