设为首页 加入收藏

TOP

SqlServer服务器角色和数据库角色相关操作(一)
2015-11-21 01:49:54 来源: 作者: 【 】 浏览:0
Tags:SqlServer 服务器 角色 数据库 相关 操作

/*------------------------------------------------------------------------------------
								【服务器级别―服务器角色】
------------------------------------------------------------------------------------*/

--	查看固定服务器角色(8个,不可增删,未包括public,每个用户都属于public服务器角色)
EXEC sp_helpsrvrole
EXEC sp_helpsrvrole @srvrolename = 'sysadmin'


--	查看服务器角色所拥有的权限说明(服务器角色详细权限说明!)
EXEC sp_srvrolepermission
EXEC sp_srvrolepermission @srvrolename = 'sysadmin'


--	判断某个登录账号是否拥有某个服务器角色(有则为1,否则为0)
SELECT IS_SRVROLEMEMBER('sysadmin')
SELECT IS_SRVROLEMEMBER('sysadmin','sa')


--	服务器角色在 SQL Server 2012 中可以创建!~
CREATE SERVER ROLE [ServerRoleKK]


--	将登录名添加为某个服务器级角色的成员
EXEC sp_addsrvrolemember @loginame= 'kk' ,@rolename = 'sysadmin' 


--	从服务器级角色中删除 SQL Server 登录名或 Windows 用户或组
EXEC sp_dropsrvrolemember @loginame = 'kk' ,@rolename = 'sysadmin'


--	查看 服务器角色 和 成员 关系
EXEC sp_helpsrvrolemember
EXEC sp_helpsrvrolemember @srvrolename = 'sysadmin'


--	查看 服务器角色 和 成员 关系(更详细)
SELECT rsp.principal_id as [role_principal_id],rsp.name AS [Server_Role]
,sp.principal_id,sp.name,sp.[sid]
,CASE WHEN sp.[type]='S' THEN 'SQL 登录名'
	WHEN sp.[type]='U' THEN 'Windows 登录名'
	WHEN sp.[type]='G' THEN 'Windows 组'
	WHEN sp.[type]='R' THEN '服务器角色'
	WHEN sp.[type]='C' THEN '映射到证书的登录名'
	WHEN sp.[type]='K' THEN '映射到非对称密钥的登录名'
END AS [Principal_Type]
,sp.create_date,sp.modify_date,sp.is_disabled
FROM sys.server_principals sp 
INNER JOIN sys.server_role_members srm ON sp.principal_id=srm.member_principal_id 
INNER JOIN sys.server_principals rsp ON srm.role_principal_id=rsp.principal_id


--	查看服务器对象权限控制情况
SELECT sp1.principal_id AS grantor_principal_id,sp1.name AS grantor_name,sp1.type_desc AS grantor_type_desc
,sp2.principal_id AS grantee_principal_id,sp2.name AS grantee_name,sp2.type_desc AS grantee_type_desc
,spe.class_desc,spe.state_desc,spe.permission_name
FROM sys.server_principals sp1
INNER JOIN sys.server_permissions spe ON sp1.principal_id=spe.grantor_principal_id
INNER JOIN sys.server_principals sp2 ON sp2.principal_id=spe.grantee_principal_id



--对于服务器级别权限控制更改:安全性――>登录名――右键登录账号――>属性――>安全对象――>搜索(有服务器/端点/登录名)――>下方控制权限


/*------------------------------------------------------------------------------------
								【数据库级别―数据库角色】
------------------------------------------------------------------------------------*/

--	查看固定数据库角色(不包括public角色,每个数据库用户都属于 public 数据库角色)
EXEC sp_helpdbfixedrole
EXEC sp_helpdbfixedrole @rolename = 'db_owner'


--	查看数据库角色所拥有的权限说明(数据库角色详细权限说明!)
EXEC sp_dbfixedrolepermission
EXEC sp_dbfixedrolepermission @rolename = 'db_owner'


--	当前数据库中有关角色的信息(至少10个固定数据库角色)
EXEC sp_helprole
EXEC sp_helprole @rolename = 'db_owner'		--IsAppRole:是否应用程序角色


--	某个角色的成员的信息
EXEC sp_helprolemember
EXEC sp_helprolemember @rolename = 'db_owner'


--	当前用户是否为指定 Microsoft Windows 组或 SQL Server 数据库角色的成员
SELECT IS_MEMBER('db_owner')


--	创建数据库角色(如创建角色 Myrole 并拥有db_owner角色)
CREATE ROLE MyRole AUTHORIZATION db_owner


--	授予角色权限(当前数据库中将数据库角色授予 数据库用户、数据库角色、Windows登录名或Windows 组)
EXEC sp_addrolemember @rolename= 'MyRole',@membername = 'MyUser'


--	回收角色权限(当前数据库中将数据库角色回收,同上相反)
EXEC sp_addrolemember @rolename= 'MyRole',@membername = 'MyUser'


--	更改角色名称
ALTER ROLE MyRole WITH NAME = NewRole


-
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MSSQL 查询统计某状态出现的次数.. 下一篇SQLServer2008中添加用户角色以及..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: