다음을 통해 공유


개체 정의 보기

데이터베이스 개체의 Transact-SQL 원본 코드를 보는 규칙은 메타데이터를 보는 규칙보다 엄격합니다. 개체의 Transact-SQL 정의를 보려면 사용자가 해당 개체를 소유하거나 해당 개체에 대한 다음 사용 권한 중 하나를 부여받아야 합니다.

  • CONTROL

  • ALTER

  • TAKE OWNERSHIP

  • VIEW DEFINITION

다음은 이러한 규칙의 작동 방법에 대한 몇 가지 예입니다.

  • 예를 들어 사용자에게 myTable 테이블에 대한 ALTER 권한이 부여된 경우 다음 표에 나열된 각 카탈로그 뷰의 definition 열에서 테이블과 관련된 하위 구성 요소의 Transact-SQL 정의를 볼 수 있습니다. 사용자에게 위에서 설명한 사용 권한 중 하나가 없거나 사용자가 개체를 소유하지 않는 경우 카탈로그 뷰의 definition 열에서 Transact-SQL 정의는 NULL입니다.

  • myTable의 테이블 소유자가 아니며 해당 테이블에 대한 SELECT 권한만 부여된 사용자가 다음 카탈로그 뷰에 액세스하면 definition 열이 NULL입니다.

    카탈로그 뷰 이름

    해당 Transact-SQL 정의

    sys.sql_modules

    mytable의 모든 트리거

    sys.computed_columns

    myTable의 모든 계산 열

    sys.check_constraints

    myTable의 모든 CHECK 제약 조건

    sys.default_constraints

    myTable의 모든 DEFAULT 제약 조건

  • 사용자에게 myProcedure 프로시저에 대한 EXECUTE 권한이 부여되었다고 가정합니다. 사용자가 sys.sql_modules 카탈로그 뷰에 액세스하여 프로시저의 Transact-SQL 정의를 보려고 하면 definition 열은 Null 값을 갖습니다. 이와 달리 사용자에게 myProcedure에 대한 TAKE OWNERSHIP 권한이 부여된 경우 sys.sql_modulesdefinition 열에서 프로시저의 Transact-SQL 정의를 볼 수 있습니다.