이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10498|회답: 0

[출처] 사용자의 객체 권한과 역할을 조회하기 위한 SQL Server입니다

[링크 복사]
게시됨 2015. 1. 28. 오후 4:33:32 | | |
SQL Server에서 객체 권한과 사용자 역할 조회[@more@]

-- 사용자의 객체 권한 조회
exec sp_helprotect NULL, 'UserName'
-- 사용자의 역할 조회
exec sp_helpuser 'UserName'
-- 지정된 시스템 역할을 가진 사용자를 조회
'sysadmin' sp_helpsrvrolemember 임원
-- 중첩된 역할은 쿼리할 수 있습니다
tree_roles 다음과 같이
(
role_principal_id 선택하세요, member_principal_id
sys.database_role_members에서
여기서 member_principal_id = USER_ID('사용자 이름')
모두 연합
c.role_principal_id 선택c.member_principal_id
sys.database_role_members에서 c
내부 조인 tree_roles
tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) RoleName
tree_roles
-- 다른 권한과 관련된 기본 테이블
시스템 사용자로부터 * 선택
syspermissions 중에서 * 선택을
-- 누가 내 SQL Server 인스턴스에 접근할 수 있나요?
고르다
name은 UserName으로, type_desc는 UserType으로, is_disabled는 IsDisabled로
sys.server_principals에서
여기서 type_desc ('WINDOWS_LOGIN', 'SQL_LOGIN')
사용자 유형, 이름, IsDisabled에 따른 순서
-- 내 데이터베이스에 접근할 수 있는 사람은 누구야?
고르다
dp.name UserName으로, dp.type_desc UserType으로, sp.name LoginName으로, sp.type_desc LoginType으로서
sys.database_principals DP로부터요
sys.server_principals 조인, sp on dp.principal_id = sp.principal_id
사용자 유형별 순서
선택 * sys.database_principals
-- 서버 역할
고르다
p.name UserName으로, p.type_desc UserType으로, pp.name ServerRoleName, pp.type_desc ServerRoleType으로서
sys.server_role_members 역할에서
roles.member_principal_id sys.server_principals p = p.principal_id에 합치한다
roles.role_principal_id sys.server_principals pp = pp.principal_id에 합류하세요
여기서 pp.name in('sysadmin')
ServerRoleName, UserName으로 정렬
-- 데이터베이스 역할
고르다
p.name UserName으로, p.type_desc UserType으로, pp.name DBRoleName, pp.type_desc DBRoleType, pp.is_fixed_role IfFixedRole로
sys.database_role_members 역할에서
roles.member_principal_id에 sys.database_principals p를 조인한다 = p.principal_id
roles.role_principal_id sys.database_principals pp 참여 = pp.principal_id
여기서 pp.name ('db_owner', 'db_datawriter')
-- 이 사용자들은 무엇을 할 수 있을까요?
고르다
grantor.name GrantorName으로, dp.state_desc StateDesc로, dp.class_desc ClassDesc, dp.permission_name PermissionName으로,
OBJECT_NAME(major_id) ObjectName, GranteeName = grantee.name
sys.database_permissions DP로부터
dp.grantee_principal_id sys.database_principals 수혜자 가입 = grantee.principal_id
dp.grantor_principal_id sys.database_principals 부여자 가입 = grantor.principal_id
여기서 permission_name '%UPDATE%' 같은 곳이죠






이전의:SQLSERVER 서버 구성
다음:comboBox 읽기 전용으로 설정(선택 전용)
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com