none
MS SQL에서 소유자 상속권한 막기 RRS feed

  • 질문

  • MS SQL에서 계층 구조에서 개체를 생성했을 때 형성되는 소유자 상속 권한 막는 방법을 알려주세요.

    2011년 11월 1일 화요일 오전 9:18

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “MS SQL에서  소유자 상속권한 막기에 대한 답변을 드리겠습니다.

     

     

    Step 1 : 환경 구성

    스키마를 생성 합니다.

    CREATE SCHEMA Schema1 AUTHORIZATION dbo;



    스키마 계층 구조 아래 User01 생성을 합니다.

     

    CREATE USER User01 

    WITHOUT LOGIN

    WITH DEFAULT_SCHEMA = Schema1;

     

     

    역할을 생성을 합니다.

     

    CREATE ROLE Role01;

     

    역할을 새로 생성한 유저에게 할당을 합니다.

     

    EXEC sp_addrolemember 'Role01', 'User01';

     

    새로생성한 스키마 계층구조 아래 테이블, 저장 프로시저를 생성을 합니다.

    CREATE TABLE Schema1.Table01 (TableNo INT);

     

    CREATE PROCEDURE Schema1.Proc01 

    AS

    BEGIN

      SELECT TableNo FROM Schema1.Table01;

    END;

     

     

    새로 생성한 역할에 저장프로시저를 실행할 있는 권한을 위임합니다.

     

    GRANT EXECUTE ON Schema1.Proc01 TO Role01;

     

     

    Step 2 : 소유자 상속 권한 확인

     

    User01권한으로 저장 프로시저를 실행할 수 있는지 확인 합니다.

    execute AS User = 'User01'

     

    exec Schema1.Proc01;

     

    Revert;

     

     

    소유자 상속 권한으로 실행이 잘 되는 것을 알 수 있습니다.

     

    Step 3 : 상속 권한 막기

     

    상속 되는 권한을 막기 위해서 하위 계층에 있는 객체의 소유자를 변경을 합니다.

    Create User TempOwner Without LOGIN;

     

    Alter Authorization on Object::Schema1.Table01 To TempOwner;

     

    다시 아래의 Script를 실행하면 에러가 발생하는 것을 볼 수 있습니다. 하위에 있는 객체의 소유자를 변경했기 때문에  소유자 상속 권한이 되지 않습니다.


    execute AS User = 'User01'

     

    exec Schema1.Proc01;

     

    Revert;

     

    참고 자료

     

    CREATE SCHEMA (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms189462.aspx

    CREATE USER(Transact-SQL)

    http://msdn.microsoft.com/ko-kr/library/ms173463(v=sql.90).aspx

    CREATE ROLE (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms187936.aspx

    CREATE PROCEDURE

    http://msdn.microsoft.com/en-us/library/aa258259(v=sql.80).aspx

    ALTER AUTHORIZATION(Transact-SQL)

    http://msdn.microsoft.com/ko-kr/library/ms187359.aspx

    • 답변으로 표시됨 김도남 2011년 11월 4일 금요일 오전 7:21
    2011년 11월 1일 화요일 오전 9:27
    중재자