세션 정책 사용

이 항목에서는 세션 정책을 사용하는 방법에 대한 예를 제공합니다.

표준 세션 정책

다음 단계는 세션 정책을 생성하고 계정이나 사용자에게 세션 정책을 설정하는 데 대한 대표적인 지침입니다.

이러한 단계에서는 policy_admin 으로 명명된 사용자 지정 역할이 세션 정책을 소유하고(즉, 세션 정책에 대한 OWNERSHIP 권한이 있고) 계정 또는 사용자에 대한 세션 정책 설정을 담당하는(즉, ACCOUNT에 대한 APPLY SESSION POLICY 권한 또는 APPLY SESSION POLICY ON USER 권한이 있는) 중앙 집중식 관리 접근 방식을 가정합니다.

참고

계정에 대한 정책을 설정하려면 policy_admin 사용자 지정 역할에 다음 권한이 있어야 합니다.

  • 세션 정책이 포함된 데이터베이스와 스키마에 대한 USAGE 권한

  • 세션 정책이 포함된 스키마에 대한 CREATE SESSION POLICY 권한

세션 정책을 구현하려면 다음 단계를 따르십시오.

  1. 사용자가 세션 정책을 만들고 관리할 수 있는 사용자 지정 역할을 만듭니다. 이 예제에서 사용자 지정 역할은 policy_admin 이지만, 적절한 이름을 사용할 수 있습니다.

    사용자 지정 역할이 이미 있는 경우 다음 단계로 계속 진행하십시오.

    그렇지 않으면, policy_admin 사용자 지정 역할을 만드십시오.

    USE ROLE USERADMIN;
    
    CREATE ROLE policy_admin;
    
    Copy
  2. 사용자 지정 역할에 권한을 부여합니다.

    policy_admin 사용자 지정 역할에 아직 다음 권한이 없는 경우, 아래에 나타낸 것처럼 권한을 부여합니다.

    • 세션 정책이 포함될 데이터베이스와 스키마에 대한 USAGE 권한.

    • 세션 정책이 포함될 스키마에 대한 CREATE SESSION POLICY 권한.

    • 계정에 대한 APPLY SESSION POLICY 권한

    • 사용자 수준에서 세션 정책을 설정할 계획인 경우 각 사용자에 대한 APPLY SESSION POLICY 권한.

    USE ROLE SECURITYADMIN;
    
    GRANT USAGE ON DATABASE mydb TO ROLE policy_admin;
    
    GRANT USAGE, CREATE SESSION POLICY ON SCHEMA mydb.policies TO ROLE policy_admin;
    
    GRANT APPLY SESSION POLICY ON ACCOUNT TO ROLE policy_admin;
    
    Copy

    세션 정책을 개별 사용자와 연결하는 경우:

    GRANT APPLY SESSION POLICY ON USER jsmith TO ROLE policy_admin;
    
    Copy

    자세한 내용은 명령, 작업 및 권한 요약 섹션을 참조하십시오.

  3. 새 세션 정책을 생성합니다.

    USE ROLE policy_admin;
    
    CREATE SESSION POLICY mydb.policies.session_policy_prod_1
      SESSION_IDLE_TIMEOUT_MINS = 30
      SESSION_UI_IDLE_TIMEOUT_MINS = 30
      COMMENT = 'Session policy for the prod_1 environment';
    
    Copy

    자세한 내용은 CREATE SESSION POLICY 섹션을 참조하십시오.

  4. ALTER ACCOUNT 명령으로 계정을 설정하고, ALTER USER 명령으로 사용자를 세션 정책으로 설정합니다.

    USE ROLE policy_admin;
    
    ALTER ACCOUNT SET SESSION POLICY mydb.policies.session_policy_prod_1;
    
    ALTER USER jsmith SET SESSION POLICY my_database.my_schema.session_policy_prod_1;
    
    Copy

    중요

    계정 또는 사용자에 대해 이미 설정된 세션 정책을 바꾸려면 먼저 세션 정책을 설정 해제한 다음, 계정 또는 사용자에 대한 새 세션 정책을 설정하십시오. 예:

    ALTER ACCOUNT UNSET session policy;
    
    ALTER ACCOUNT SET SESSION POLICY mydb.policies.session_policy_prod_2;
    
    Copy

세션 정책에서 보조 역할 지정

다음 섹션에서는 세션 정책에서 보조 역할을 지정하는 방법을 자세히 설명합니다.

세션 정책의 보조 역할에 대한 자세한 내용은 세션 정책의 보조 역할 섹션을 참조하십시오.

세션 정책에서 속성 설정

보안 관리자는 새 세션 정책을 생성하거나 기존 세션 정책을 수정하여 ALLOWED_SECONDARY_ROLES 속성을 설정할 수 있습니다. 예:

  • 모든 보조 역할을 허용하기 위해 새 세션 정책을 생성합니다.

    CREATE OR REPLACE SESSION POLICY prod_env_session_policy
      SESSION_IDLE_TIMEOUT_MINS = 30
      SESSION_UI_IDLE_TIMEOUT_MINS = 30
      ALLOWED_SECONDARY_ROLES = ('ALL')
      COMMENT = 'session policy for use in the prod_1 environment';
    
    Copy
  • 기존 세션 정책을 수정하여 보조 역할을 허용하지 않음:

    ALTER SESSION POLICY prod_env_session_policy
      SET ALLOWED_SECONDARY_ROLES = ();
    
    Copy

    속성이 이미 설정되어 있는 경우 ALTER SESSION POLICY 명령으로 속성 값을 수정할 수 있습니다.

구문에 대한 자세한 내용은 세션 정책 관리하기 섹션을 참조하십시오.

DESCRIBE SESSION POLICY 명령을 사용하거나 GET_DDL 함수를 호출하여 ALLOWED_SECONDARY_ROLES 속성 값을 볼 수 있습니다.

세션 정책에서 속성 설정 취소

세션 정책에서 ALTER SESSION POLICY 명령을 사용하여 보조 역할을 설정 해제할 수 있습니다.

ALTER SESSION POLICY prod_env_session_policy
  UNSET ALLOWED_SECONDARY_ROLES;
Copy

계정의 모든 사용자에 대해 보조 역할을 허용하지 않습니다.

계정의 모든 사용자가 보조 역할을 사용하지 못하도록 하려면 세션에 보조 역할을 허용하지 않는 세션 정책을 계정에 설정합니다. 예:

  1. 보조 역할을 허용하지 않도록 세션 정책을 수정합니다.

    ALTER SESSION POLICY prod_env_session_policy SET ALLOWED_SECONDARY_ROLES = ();
    
    Copy
  2. 계정에 세션 정책을 할당합니다.

    ALTER ACCOUNT SET SESSION POLICY prod_env_session_policy;
    
    Copy

사용자가 USE SECONDARY ROLES 명령(예: USE SECONDARY ROLES analyst;)으로 보조 역할을 활성화하려고 하면 다음과 같은 오류 메시지가 표시됩니다

SQL execution error: USE SECONDARY ROLES '[ANALYST]' not allowed as per session policy.

특정 사용자에 대한 보조 역할 허용 안 함

특정 사용자가 보조 역할을 사용하지 못하도록 하려면 해당 세션에 대한 보조 역할을 허용하지 않는 세션 정책을 사용자에 설정합니다. 예를 들어, 해당 세션 정책이 이미 존재하는 경우:

ALTER USER jsmith SET SESSION POLICY prod_env_session_policy;
Copy

계정에 세션 정책이 설정되어 있는 경우, 사용자에게 할당된 세션 정책이 계정의 세션 정책보다 우선합니다.

사용자가 보조 역할을 활성화하기 위해 USE SECONDARY ROLES 명령(예: USE SECONDARY ROLES (ANALYST, DATA_SCIENTIST);)을 실행하면 다음과 같은 오류 메시지가 표시됩니다.

SQL execution error: USE SECONDARY ROLES '[ANALYST, DATA_SCIENTIST]' not allowed as per session policy.

사용자가 특정 보조 역할을 사용하도록 허용

사용자가 특정 보조 역할을 사용할 수 있도록 하려면 다음을 수행합니다.

  1. 사용자가 사용할 수 있는 보조 역할을 지정하는 세션 정책을 생성합니다.

    CREATE OR REPLACE SESSION POLICY prod_env_session_policy
      SESSION_IDLE_TIMEOUT_MINS = 30
      SESSION_UI_IDLE_TIMEOUT_MINS = 30
      ALLOWED_SECONDARY_ROLES = (DATA_SCIENTIST, ANALYST)
      COMMENT = 'session policy for user secondary roles data_scientist and analyst';
    
    Copy
  2. 사용자의 세션 정책을 설정합니다.

    ALTER USER bsmith SET SESSION POLICY prod_env_session_policy;
    
    Copy

사용자는 필요에 따라 USE SECONDARY ROLES 명령으로 보조 역할을 활성화할 수 있습니다. 예:

  • 모든 보조 역할 활성화:

    USE SECONDARY ROLES ALL;
    
    Copy
  • 보조 역할로 DATA_SCIENTIST 활성화:

    USE SECONDARY ROLES DATA_SCIENTIST;
    
    Copy

구문에 대한 자세한 내용은 USE SECONDARY ROLES 섹션을 참조하십시오.

세션 정책을 대상 계정에 복제

데이터베이스 복제 및 계정 복제를 사용하여 사용자 또는 계정에 대한 할당인 세션 정책 및 해당 참조를 소스 계정에서 대상 계정으로 복제할 수 있습니다. 자세한 내용은 다음을 참조하십시오.

보조 역할을 지정하는 세션 정책을 복제하는 방법에 대한 자세한 내용은 보조 역할로 세션 정책 복제 섹션을 참조하십시오.