SQL Server中查詢使用者的物件許可權和角色的方法
-- 查詢使用者的object許可權
exec sp_helprotect NULL, 'UserName'
-- 查詢使用者擁有的role
exec sp_helpuser 'UserName'
-- 查詢哪些使用者擁有指定的系統role
exec sp_helpsrvrolemember 'sysadmin'
-- 可查詢巢狀role
WITH
tree_roles as
(
SELECT
role_principal_id, member_principal_id
FROM sys.database_role_members
WHERE
member_principal_id = USER_ID('UserName')
UNION ALL
SELECT c.role_principal_id,c.member_principal_id
FROM sys.database_role_members as
c
inner join tree_roles
on
tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id)
RoleName
FROM
tree_roles
-- 其他許可權相關基本表
select * from sysusers
select * from syspermissions
-- Who has access to my SQL
Server instance?
SELECT
name
as UserName,
type_desc as UserType,
is_disabled as IsDisabled
FROM sys.server_principals
where
type_desc in('WINDOWS_LOGIN', 'SQL_LOGIN')
order by UserType, name, IsDisabled
-- Who has access to my
Databases?
SELECT
dp.name as UserName, dp.type_desc as
UserType, sp.name
as LoginName,
sp.type_desc as
LoginType
FROM sys.database_principals dp
JOIN sys.server_principals sp ON
dp.principal_id =
sp.principal_id
order by UserType
select * from sys.database_principals
-- Server Roles
select
p.name as UserName, p.type_desc as UserType, pp.name as
ServerRoleName, pp.type_desc
as ServerRoleType
from sys.server_role_members roles
join sys.server_principals p on
roles.member_principal_id = p.principal_id
join sys.server_principals pp on
roles.role_principal_id = pp.principal_id
where pp.name in('sysadmin')
order by ServerRoleName,
UserName
-- Database Roles
SELECT
p.name as UserName, p.type_desc as UserType, pp.name as DBRoleName, pp.type_desc as DBRoleType, pp.is_fixed_role as
IfFixedRole
FROM sys.database_role_members roles
JOIN sys.database_principals p ON
roles.member_principal_id = p.principal_id
JOIN sys.database_principals pp ON
roles.role_principal_id = pp.principal_id
where pp.name in('db_owner', 'db_datawriter')
-- What can these users do?
SELECT
grantor.name as GrantorName, dp.state_desc as
StateDesc, dp.class_desc
as ClassDesc,
dp.permission_name as
PermissionName ,
OBJECT_NAME(major_id)
as ObjectName,
GranteeName = grantee.name
FROM sys.database_permissions dp
JOIN sys.database_principals grantee on
dp.grantee_principal_id = grantee.principal_id
JOIN sys.database_principals grantor on
dp.grantor_principal_id = grantor.principal_id
where
permission_name like '%UPDATE%'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-1060533/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於SQL Server資料庫中的使用者許可權和角色管理SQLServer資料庫
- MongoDB4.0建立自定義許可權(只有查詢,插入和更新的許可權)的角色步驟MongoDB
- Sql Server關於許可權、角色以及登入名、使用者名稱的總結SQLServer
- MySql查詢使用者許可權MySql
- UserService 查詢使用者查詢許可權 isGlobalQuery分析
- UserService 查詢使用者沒許可權的索引,增加臨時許可權queryIndicesNoPermission分析索引
- Oracle使用者角色許可權管理Oracle
- 使用者角色許可權管理架構架構
- MongoDB建立只讀使用者並授權指定集合的查詢許可權MongoDB
- UserService 修改使用者查詢許可權 changeGlobalQuery分析
- UserService 刪除使用者查詢許可權 deleteUserPermission分析delete
- UserService 查詢使用者有許可權的關聯索引 queryIndexPatternByUserName分析索引Index
- 如何檢查某個使用者是否具有某個許可權物件上定義的某種許可權物件
- 使用者和組的許可權
- Rbac使用者角色許可權表設計
- 設定root使用者有寫入和查詢hdfs上面檔案的許可權
- Spring安全的角色和許可權原始碼與教程 - javadevjournalSpring原始碼Javadev
- Quarkus中基於角色的許可權訪問控制教程
- SQL Server如何匯出db所有使用者許可權建立語句SQLServer
- 協同平臺檢視許可權開啟業務物件提示"當前使用者沒有許可權!請檢查使用者[BOS設計器]的[編輯]許可權與應用的編輯許可權!"物件
- Linux 特殊許可權a,i,t,s以及查詢帶有特殊許可權的所有檔案Linux
- Laravel——使用者角色許可權控制包 Laravel-permissionLaravel
- 如何檢查某使用者是否分配了某ABAP許可權物件物件
- MySQL如何查詢all有哪些許可權?MySql
- 使用LDAP查詢快速提升域許可權LDA
- sql許可權管理SQL
- SQL Server 語句日期格式查詢方法SQLServer
- Sql Server 的引數化查詢SQLServer
- 關於樹結構的查詢優化,及許可權樹的查詢優化優化
- Linux系統中(CentOS 7)的使用者和許可權管理LinuxCentOS
- Linux的檔案存取許可權和0644許可權Linux
- Django REST framework中認證和許可權的使用方法DjangoRESTFramework
- Think Authz:支援 ACL、RBAC、ABAC 等模型的授權(角色和許可權控制)庫模型
- windows server許可權對tomcat的影響WindowsServerTomcat
- Linux雜記 查詢與特殊許可權位Linux
- SQL SERVER 2012查詢資料庫和所有表的大小方法彙總SQLServer資料庫
- SQL查詢的:子查詢和多表查詢SQL
- SQL Server查詢慢的解決方案SQLServer
- SQL Server中Table字典資料的查詢SQL示例程式碼SQLServer