SQL Server / 모든 사용자에 대한 모든 권한을 com/go/downloads_kr 쿼리하지 데이터베이스에 액세스
Sql server 2008년 에서 쿼리하지 쓸 수 있는 모두 보고 싶다 액세스하도록 사용자 또는 객체가 등 특정 데이터베이스, 테이블, 뷰, 저장 프로시저 직접, 또는 데이터베이스 내의 인해 역할 등에. 이 보고서는 약간만이라도 사용되는 보안 감사를. 만약 누군가 나의 요구에 맞게 될 수 있는지 알고 있다, 그러나 나를 완전히 쿼리하지 생각하신거야 부여하느뇨 좋은 출발을 기대해 본다. Sql 2008년, 2005-2000년 할 수 있는데, 필요에 따라 변환하시겠습니까 인컨텍스트 것이다.
180
12
이는 당시 기준으로 크랙 (crack my first 쿼리하지 andomar& # 39 의 제안. 이 질의에서는 고안되었습니다 사용자가 직접 적용할 수 있는 권한 목록을 제공하십시오 인컨텍스트 사용자 계정을 통해, 또는 관리/역할 사용자가 있다.
다음은 8월 2011년 제안한 쿼리하지 변경 사항을 포함한 완전한 버전의 Jeremy& # 39 의 브래드 (10월 2011년) 과 세바스쿠친 (5월 2012년) 내장했습니다:
이를 통해 다른 사람을 위해 목숨을 걸고 한 시간 또는 두 개의 기대해 본다. '':)
이를 위해 시스템 뷰는 에서 SQL Server 2005년 에서 사용할 수 있습니다. 예를 들어, 이 질의에서는 모든 사용자가 데이터베이스의 열거합니다 그들의 권리:
주의해야 할 수 있는 권한을 가지고 있는 사용자 역할을 통해 잘 알려져 있다. 예를 들어, '' 선택 '역할에 대한 권한을 db_data_reader 허가합니다 객체에는 대부분.
39, t 에 대한 의견 수락됨 오토메이티드 그러하매 I& can& # 39, ll 추가 일부 설명을 있습니다.
39 의 it& 굈 '내 경험 있는 것이 아니라' 표시 '을 (를)' sys.server_principals sys.login_token 않을 뿐만 아니라 또한 sql 로그인을 indows 수준들과
39, & # 39 G& 반드시 1 명 추가 ',' 를 사용할 수 있도록 indows 그룹 주요 유형
39, ll 게시물로의 i& 첫 부분을 수정, 변경해야 할 뿐만 아니라 다른 모든 부품이 함께 스크립트입니다 제안했다.
뛰어난 스크립트입니다 제레미랑 투고자! 감사합니다!
I have a 는 사용자 s 급 실행하기 때문에 모든 사용자에 대한 악몽을 되풀이했다. 그래서 저는 제가 couldn& t # 39, 주석 추가, 변경 사항을 포함한 전체 스크립트입니다 보였다. 그래서 내가 추가한 가변으로 + where 절 검색할 수 있는 최대 5 자 일치하는 것도 사용자 이름 (또는 모든 사용자가 비어 있음). 하지만 데 도움이 될 것 같아 활용 사례를 몇 가지 특별한 게 없다.
일부 다른 답을 볼 수 있는 권한을 보유하고 있는 크리스티나랑 않는비즈니스 데이터베이스입니까. 아래 코드는 허가를 얻을 수 있는 첫 번째 쿼리하지 데이터베이스 수준이 아닌 모든 시스템 객체입니다. 해당 it 생성하는지 허가합니다 명령문입니다 잘 알려져 있다. 두 번째 쿼리하지 메버시프스 모든 역할이 된다.
이 때문에 각 데이터베이스에 대해 함께 사용할 수 있지만, 너무 오래 실행하십시오 sp_MSforeachdb. 그렇게 하려면 you& # 39, d 가 추가하기 위해서 마스터 데이터베이스 시스템인 저장 프로시저.
또한 모든 가능성을 다룰 수 있는 스크립트입니다 you&; d # 39 에서 서버 수준 권한이 있어야 한다.
하지만 이 의미하는 것이며, 그 위에 优秀 Sp_msforeachdb 제페르미시언스 저장 프로시저를 사용할 경우 포함하는 모든 데이터베이스뿐 이름을 SQL 인스턴스에는 분할합니다 공백이나 대시 및 기타 비사양 best practice 자입니다. 또한 열 Sp_msforeachdb 사용을 허용하지 않는 내가 hotenough. 버전 2 개 포함 1 - 로그인 계정일 나타내는 경우 시스템 로그인 (이시자드민로긴) 과 2 는 고아 같다니요 경우 - 로그인 사용자 (이왕티로프).
이것은 내 다른 버전, 발췌. 난 이제 막 내가 어떻게 하는 데 30 분 @Jeremy & # 39 의 오토메이티드 너희에게베풀어진 한국증권선물거래소법을 및 핵심 것 같다 "는 말을 들었다. # 39, t, s # 39 라고 내가 didn& 업데이트하려면 Jeremy& 버그, 그래서 나는 내 혹시 무슨 글을 여기에 버전을 선보였다. 내가 페어링할 제안하세요 전체 스크립트입니다 일부 영감 (靈感) 에서 발췌 # 39 의 케네스 fisher& t-sql 화요일: 어떤 특정 사용자 권한 수행합니까 %s/dbase/ext_table.?: 이렇게 하면 감사 질문 / 답변 준수에서 상향식 반대되는 개념으로, 하향식 (top-down). "' & # 39, & # 39 로 로그인 = 실행하십시오 < loginname>;;
Token.name 로 groupname 선택 충스러웠으니 sys.login_token 토큰인지 Bigadmin sys.server_principals grp 켜짐이 토켄드사이드 = 그레피사이드
39, & # 39, WINDOWS GROUP& [type] = 여기서 토큰인지.
39, & # 39, [type] = G& 및 grp.
복구입니다. "' Ad 그룹 멤버 ',' Windows '이 닫히지만 고려해보십시오 Contoso\DB_AdventureWorks_Accounting 이해할 수 있는 Contoso\John.Doe'. '인증' 를 통해 존스도 장방튀르부르크스 server_principal Contoso\DB_AdventureWorks_Logins indows AD 그룹. 누군가 어떤 권한을 갖고 " 존스도 높여줍니까 " 묻습니다, 그 질문을 부트해 답할 수 없는 경우, 아래 스크립트입니다.? 그 아래 각 행의 반복할 데 필요한 힘을 redhat. 의해 반환되었습니다 스크립트입니다 위의 스크립트입니다. (할 수도 있습니다 정상화를 위한 오래되었는가 '이름' 값을 찾는 통해 사용자의 SID 의 Active Directory 제공업체입니다.) 다음은 스크립트입니다 역동기화 조회 없이 같은 것은 없다. "' /*
39, & # 39 S& 때. [성명] - SQL 사용자 어졌다면 데브친왕.
39, & # 39 U& 때. [성명] - Windows 사용자 어졌다면 사친왕.
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
Null else 끝 [Type] [우스티페] = 케이스 데브친왕.
39, & # 39 S& 때. # 39, & # 39, SQL User& 어졌다면
39, & # 39 U& 때. # 39, & # 39, Windows User& 어졌다면
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
[Type] 다른 데브친왕. 끝 [프린시펄우저나미] = 가속 시 가용 ( [Type] 경우 데브친왕.
39, & # 39 S& 때. [성명] - SQL 사용자 어졌다면 데브친왕.
39, & # 39 U& 때. [성명] - Windows 사용자 어졌다면 사친왕.
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
Null else 끝 [성명] 데브친왕. ), [Type] [프린시펄티페] = 케이스 데브친왕.
39, & # 39 S& 때. # 39, & # 39, SQL User& 어졌다면
39, & # 39 U& 때. # 39, & # 39, Windows User& 어졌다면
39, & # 39 R& 때. # 39, & # 39, 데이터베이스 Role& 어졌다면
39, & # 39 G& 때. # 39, & # 39, Windows Group& 어졌다면
끝 [성명], [다타바세우저나미] = 데브친왕. [역할] = null, [Permission_name], [페르미시온티페] = 페름. [State_desc], [페르미시의 국가] = 페름. [ObjectType] = obj. [type_desc], [class_desc] - perm. [로비치셰마] = OBJECT_SCHEMA_NAME (perm.major_id), [개체 이름] = OBJECT_NAME (perm.major_id), [성명] [콜럼나메] = 열. 에서
39, & # 39, [이름] = guest& 데브친왕.
그리고 ( (
39, & # 39, SQL_SCALAR_FUNCTION& obj.type_desc =
39, & # 39 와 OBJECT_NAME (perm.major_id) = fn_diagramobjects&.
) 또는 (
39, & # 39, SQL_STORED_PROCEDURE& obj.type_desc =
및 OBJECT_NAME (perm.major_id) 였다. (
39 n& sp_alterdiagram& # 39;;
39 n& sp_creatediagram& # 39;;
39 n& sp_dropdiagram& # 39;;
39 n& sp_helpdiagramdefinition& # 39;;
39 n& sp_helpdiagrams& # 39;;
39 n& sp_renamediagram& # 39;;
) ) ) 그럼 0 다른 1 끝 = 1 연합
39, & # 39 S& 때. [성명] 다음 멤버친왕.
39, & # 39 U& 때. [성명] 다음 사친왕.
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
Null else 끝 [Type] [우스티페] = 케이스 멤버친왕.
39, & # 39 S& 때. # 39, & # 39, SQL User& 어졌다면
39, & # 39 U& 때. # 39, & # 39, Windows User& 어졌다면
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
끝 [프린시펄우저나미] = 가속 시 가용 ( [Type] 경우 멤버친왕.
39, & # 39 S& 때. [성명] 다음 멤버친왕.
39, & # 39 U& 때. [성명] 다음 사친왕.
39, & # 39 R& 때. 그럼 nulll - 데이터베이스 역할
39, & # 39 G& 때. 그럼 nulll - windows7* 그룹
Null else 끝 [성명] 멤버친왕. ), [Type] [프린시펄티페] = 케이스 멤버친왕.
39, & # 39 S& 때. # 39, & # 39, SQL User& 어졌다면
39, & # 39 U& 때. # 39, & # 39, Windows User& 어졌다면
39, & # 39 R& 때. # 39, & # 39, 데이터베이스 Role& 어졌다면
39, & # 39 G& 때. # 39, & # 39, Windows Group& 어졌다면
끝 [성명], [다타바세우저나미] = 멤버친왕. [성명], [역할] = 롤프린스. [Permission_name], [페르미시온티페] = 페름. [State_desc], [페르미시의 국가] = 페름. [Class_desc], [ObjectType] = - perm obj.type_desc. [로비치셰마] = OBJECT_SCHEMA_NAME (perm.major_id), [개체 이름] = OBJECT_NAME (perm.major_id), [성명] [콜럼나메] = 열. 에서
39, & # 39, [이름] = guest& 멤버친왕.
그리고 ( (
39, & # 39, SQL_SCALAR_FUNCTION& obj.type_desc =
39, & # 39 와 OBJECT_NAME (perm.major_id) = fn_diagramobjects&.
) 또는 (
39, & # 39, SQL_STORED_PROCEDURE& obj.type_desc =
및 OBJECT_NAME (perm.major_id) 였다. (
39 n& sp_alterdiagram& # 39;;
39 n& sp_creatediagram& # 39;;
39 n& sp_dropdiagram& # 39;;
39 n& sp_helpdiagramdefinition& # 39;;
39 n& sp_helpdiagrams& # 39;;
39 n& sp_renamediagram& # 39;;
) ) ) 그럼 0 다른 1 끝 = 1 연합
39, & # 39, [type] = R& 롤프린스. 및
39, & # 39, [이름] = public& 롤프린스. 및
39, & # 39, [이름] = public& 롤프린스.
그리고 ( (
39, & # 39, SQL_SCALAR_FUNCTION& obj.type_desc =
39, & # 39 와 OBJECT_NAME (perm.major_id) = fn_diagramobjects&.
) 또는 (
39, & # 39, SQL_STORED_PROCEDURE& obj.type_desc =
및 OBJECT_NAME (perm.major_id) 였다. (
39 n& sp_alterdiagram& # 39;;
39 n& sp_creatediagram& # 39;;
39 n& sp_dropdiagram& # 39;;
39 n& sp_helpdiagramdefinition& # 39;;
39 n& sp_helpdiagrams& # 39;;
39 n& sp_renamediagram& # 39;;
) ) ) 그럼 0 다른 1 끝 = 1 ORDER BY [성명], 데브친왕. OBJECT_NAME (perm.major_id), [성명], 열. [permission_name], 페름. [state_desc], 페름. obj.type_desc-perm. [class_desc] "'
멋진 멋지구리해요 주셔서 감사 스크립트입니다.
난 매우 뛰어난 사용자 사용 추천합니까 감사를 케네스 피셔 ([b] (http://sqlstudies.com/) [t] (https://twitter.com/sqlstudent144)) 저장 프로시저:
나는 이 모든 사실을 알고 있지만 나는 그저 한 명이 실종됐다고 빠르게 일부, 특히 sysadmin 특징이다. # 39 에서 good t look like that, 구멍을 가진 won& 당사의 감사, 이게 내가 지었지
내가 couldn& 죄송합니다. t # 39, 명성, 하지만 난 이미 대해 숀 로즈 게시물로의 부족으로 인해 개정 " public"; # 39 스키마에는 범위지정 보이기 때문에, t 스크립트입니다 역할 부분을 didn& 권한만으로 포지셔닝하여 시스트로비치스트 참가하십시오 인해 (내부) 변경된 후 개정을 위해 추가적으로 where 절 로직을 생략하십시오 시스템 객체여야 왼쪽 참가하십시오 했다. 다음은 파마 내 쿼리하지 주장하고 있다.