Unity 카탈로그 개체 소유권 관리

Unity 카탈로그의 각 보안 개체에는 소유자가 있습니다. 소유자는 보안 주체라고 하는 모든 사용자, 서비스 주체 또는 계정 그룹일 수 있습니다. 개체를 만드는 보안 주체는 초기 소유자가 됩니다. 개체의 소유자는 테이블의 SELECTMODIFY 같은 개체에 대한 모든 권한과 다른 보안 주체에게 권한을 부여할 수 있는 권한을 갖습니다. 개체의 소유자는 개체를 삭제할 수 있습니다.

소유자의 권한

개체 소유자에게 해당 개체에 대한 모든 권한이 자동으로 부여됩니다. 또한 개체 소유자는 개체 자체 및 모든 자식 개체에 대한 권한을 부여할 수 있습니다. 즉, 스키마 소유자가 스키마의 테이블에 대한 모든 권한을 자동으로 가지지는 않지만 스키마의 테이블에 대한 권한을 부여할 수 있습니다.

Metastore 및 카탈로그 소유권

Metastore 관리자는 metastore의 소유자입니다. Metastore 관리자는 metastore 관리자 역할을 전송하여 metastore의 소유권을 다시 할당할 수 있습니다. metastore 관리자 할당을 참조하세요 .

Unity 카탈로그에 대해 작업 영역을 자동으로 사용하도록 설정한 경우 작업 영역은 기본적으로 메타스토어에 연결되고 메타스토어의 작업 영역에 대한 작업 영역 카탈로그가 만들어집니다. 작업 영역 관리자는 기본 소유자이며 작업 영역 카탈로그의 소유권을 다시 할당할 수 있습니다. 기본적으로 할당된 메타스토어 관리자는 없지만 계정 관리자는 필요한 경우 metastore 관리자 권한을 계속 부여할 수 있습니다. Metastore 관리자를 참조 하세요.

Unity 카탈로그의 관리자 권한에 대한 자세한 내용은 Unity 카탈로그의 관리 권한을 참조하세요.

개체의 소유자 보기

보안 개체의 소유자를 보려면 다음 구문을 사용합니다. 자리 표시자 값을 바꿉니다.

  • <SECURABLE-TYPE>: 보안 개체의 형식입니다(예: CATALOG 또는 TABLE).
  • <catalog>: 테이블 또는 뷰의 부모 카탈로그입니다.
  • <schema>: 테이블 또는 뷰의 부모 스키마입니다.
  • <securable-name>: 테이블 또는 뷰와 같은 보안 개체의 이름입니다.

SQL

DESCRIBE <SECURABLE-TYPE> EXTENDED <catalog>.<schema>.<securable-name>;

Python

display(spark.sql("DESCRIBE <SECURABLE-TYPE> EXTENDED <catalog>.<schema>.<securable-name>"))

R

library(SparkR)

display(sql("DESCRIBE <SECURABLE-TYPE> EXTENDED <catalog>.<schema>.<securable-name>"))

Scala

display(spark.sql("DESCRIBE <SECURABLE-TYPE> EXTENDED <catalog>.<schema>.<securable-name>"))

소유권 이전

개체 소유권은 현재 소유자, metastore 관리자 또는 컨테이너 소유자(스키마 카탈로그, 테이블의 스키마)에 의해 다른 보안 주체로 이전할 수 있습니다. 델타 공유 공유 개체는 예외입니다. 공유 소유권을 USE SHARE 가진 보안 주체와 SET SHARE PERMISSION 공유 소유권을 이전할 수도 있습니다.

개체의 소유권을 이전하려면 다음 구문과 함께 SQL 명령을 사용합니다. 자리 표시자 값을 바꿉니다.

  • <SECURABLE-TYPE>: CATALOG 또는 TABLE과 같은 보안 개체의 형식입니다. METASTORE는 이 명령에서 보안 개체로 지원되지 않습니다.
  • <SECURABLE-NAME>: 보안 개체의 이름입니다.
  • <PRINCIPAL>: 계정 수준 사용자의 이메일 주소 또는 계정 수준 그룹의 이름입니다.

SQL

ALTER <SECURABLE-TYPE> <SECURABLE-NAME> OWNER TO <PRINCIPAL>;

Python

spark.sql("ALTER <SECURABLE-TYPE> <SECURABLE-NAME> OWNER TO <PRINCIPAL>")

R

library(SparkR)

sql("ALTER <SECURABLE-TYPE> <SECURABLE-NAME> OWNER TO <PRINCIPAL>")

Scala

spark.sql("ALTER <SECURABLE-TYPE> <SECURABLE-NAME> OWNER TO <PRINCIPAL>")

예를 들어 테이블의 소유권을 accounting 그룹으로 이전하려면 다음을 수행합니다.

SQL

ALTER TABLE orders OWNER TO `accounting`;

Python

spark.sql("ALTER TABLE orders OWNER TO `accounting`")

R

library(SparkR)

sql("ALTER TABLE orders OWNER TO `accounting`")

Scala

spark.sql("ALTER TABLE orders OWNER TO `accounting`")