조직 사용자¶
여러 개의 계정을 보유한 조직에서는 종종 같은 사람이 2개 이상의 계정에서 사용자로 활동해야 하는 경우가 있습니다. 각 계정의 사용자에 대한 사용자 오브젝트를 개별적으로 생성하는 작업을 반복하지 않으려면 조직 관리자가 조직 계정 에서 조직 사용자 를 생성할 수 있습니다. 각 조직 사용자는 계정 관리자가 일반 계정으로 가져올 수 있는 글로벌 사용자 엔터티 역할을 하므로 동일한 사용자가 여러 계정에 사용자 오브젝트를 보유하는 프로세스가 간소화됩니다.
계정 관리자는 조직 사용자를 일반 계정에 직접 추가하지 않습니다. 대신 조직 사용자의 논리적 그룹인 조직 사용자 그룹 을 추가합니다. 계정 관리자가 조직 사용자 그룹을 가져오면 해당 조직 사용자가 계정에 추가됩니다.
참고
1개 이상의 일반 계정에 이미 사용자 오브젝트가 있는 사람에 대한 조직 사용자를 생성할려면 조직 사용자 그룹을 가져온 후 조직 사용자와 기존 사용자 오브젝트를 링크해야 합니다. 자세한 내용은 사용자 가져오기 후 충돌 해결하기 섹션을 참조하십시오.
시작하기¶
조직 사용자를 1개 이상의 계정으로 가져오는 기본 워크플로는 다음과 같습니다.
조직 계정의 글로벌 조직 관리자입니다.
여러 일반 계정에서 사용자가 될 각 사람에 대해 조직 사용자를 생성 합니다.
사용자를 논리적으로 그룹화하는 조직 사용자 그룹을 생성 합니다.
일반 계정의 계정 관리자가 조직 사용자 그룹을 사용할 수 있도록 설정합니다.
일반 계정의 관리자로 로그인합니다.
조직 사용자 그룹 을 계정으로 가져옵니다.
충돌을 확인하고 해결 합니다.
이 워크플로의 엔드투엔드 예시는 확장된 예 섹션을 참조하십시오.
조직 사용자 생성하기¶
조직 관리자는 로그인 이름, 이메일 등 사용자 오브젝트의 기본 속성을 가진 조직 사용자를 생성합니다. 이메일만 필수이지만, 사용자를 가져온 후에는 일반 계정에서 이러한 기본 속성을 설정할 수 없습니다. 이러한 기본 속성 목록은 CREATE ORGANIZATION USER 섹션을 참조하십시오.
예를 들어, 다음 명령은 조직 사용자를 생성합니다.
USE ROLE GLOBALORGADMIN;
CREATE ORGANIZATION USER asmith
EMAIL = 'asmith@example.com'
LOGIN_NAME = 'asmith@example.com';
조직 사용자 그룹¶
조직 사용자 그룹 은 조직 사용자의 논리적 그룹입니다. 조직 관리자는 이러한 조직 사용자 그룹을 생성한 다음 각 그룹에 속해야 하는 조직 사용자를 추가합니다. 계정 관리자가 조직 사용자 그룹을 계정으로 가져오면 해당 그룹의 모든 조직 사용자가 일반 계정의 사용자 오브젝트가 됩니다. 조직 사용자는 여러 조직 사용자 그룹의 멤버가 될 수 있습니다.
계정 관리자가 조직 사용자 그룹을 일반 계정으로 가져오면 Snowflake는 같은 이름의 액세스 제어 역할 을 생성합니다. 예를 들어, 조직 사용자 그룹의 이름이 data_stewards
인 경우 이 그룹을 일반 계정으로 가져오면 data_stewards
라는 역할이 생성됩니다. 조직 사용자 그룹에서 가져온 각 사용자에게는 이 역할이 부여됩니다.
일반 계정의 관리자는 조직 사용자 그룹에서 가져온 각 사용자에게 부여된 역할에 대한 권한을 부여하고 취소하여 액세스 제어를 세부적으로 조정할 수 있습니다. 새 역할에 계정별 역할을 부여하거나 계정별 역할에 새 역할을 부여할 수도 있습니다.
동일한 조직 사용자 그룹을 여러 일반 계정으로 가져와서 조직 전체에서 일관된 역할을 구현할 수 있습니다. 각 일반 계정은 역할에 계정별 권한을 할당할 수 있지만 이름 지정은 일관되게 유지됩니다. 또는 각 계정에 대해 별도의 조직 사용자 그룹을 생성한 다음 특정 계정에 필요한 조직 사용자를 해당 조직 사용자 그룹에 추가할 수 있습니다.
관리자가 동일한 조직 사용자를 포함하는 여러 조직 사용자 그룹을 가져오면 로컬 사용자는 한 명만 생성해지며 이 사용자에게는 모든 조직 사용자 그룹의 역할이 부여됩니다.
일반 계정의 계정 관리자를 위한 조직 사용자 그룹을 준비하는 조직 관리자 작업은 3단계로 진행됩니다.
조직 사용자 그룹을 생성 합니다.
그룹에 조직 사용자를 추가 합니다.
그룹의 공개 여부를 설정 하여 이 그룹에 액세스할 수 있는 일반 계정을 지정합니다.
조직 사용자 그룹 생성하기¶
조직 관리자가 CREATE ORGANIZATION USER GROUP 명령을 실행하여 조직 계정에서 새 조직 사용자 그룹을 생성합니다.
예를 들어, 다음 명령은 데이터 엔지니어의 논리적 그룹을 나타내는 조직 사용자 그룹을 생성합니다.
CREATE ORGANIZATION USER GROUP data_engineers_group;
조직 사용자 그룹에 조직 사용자 추가하기¶
조직 관리자가 조직 사용자 그룹을 생성한 후 ALTER ORGANIZATION USER GROUP 명령을 실행하여 쉼표로 구분된 목록으로 조직 사용자를 그룹에 추가할 수 있습니다. 예를 들어, 조직 사용자 그룹 data_engineers_group
에 기존 조직 사용자 2명을 추가하려면 다음을 실행합니다.
ALTER ORGANIZATION USER GROUP data_engineers_group
ADD ORGANIZATION USERS asmith, sjohnson;
일반 계정에서 조직 사용자 그룹을 사용할 수 있도록 설정¶
조직 그룹을 생성한 후에는 해당 그룹을 보고 가져올 수 있는 일반 계정을 지정해야 합니다. 계정 관리자는 ALTER ORGANIZATION USER GROUP 명령을 사용하여 그룹의 공개 여부를 설정하기 전까지는 조직 사용자 그룹을 사용하여 사용자를 가져올 수 없습니다. 모든 일반 계정이 조직 사용자 그룹을 가져올 수 있도록 지정하거나 특정 계정에 대한 액세스를 제한할 수 있습니다.
중요
ALTER ORGANIZATION USER GROUP 명령을 실행하여 표시 여부를 설정하면 이전 표시 여부 설정을 덮어씁니다. 예를 들어, 표시 여부를 ALL
로 설정한 다음 ALTER 명령을 실행하여 표시 여부를 account_a
로 설정한 경우 조직 사용자 그룹에서 생성한 사용자 및 역할이 account_a
을 제외한 모든 계정에서 제거됩니다.
다음 명령은 qa_env
계정만 조직 사용자 그룹을 추가할 수 있도록 허용합니다.
ALTER ORGANIZATION USER GROUP data_engineers_group
SET VISIBILITY = ACCOUNTS qa_env;
일반 계정에서 사용자 가져오기¶
조직 관리자가 조직 사용자 그룹을 생성한 후 일반 계정의 관리자는 ALTER ACCOUNT 명령을 실행하여 조직 사용자 그룹을 추가함으로써 조직 사용자를 가져올 수 있습니다. 이러한 관리자는 조직 관리자가 일반 계정이 액세스할 수 있도록 그룹의 표시 여부를 설정 한 경우에만 조직 사용자 그룹을 가져올 수 있습니다.
기본적으로 ACCOUNTADMIN 역할이 있는 사용자만 조직 사용자 그룹을 일반 계정으로 가져올 수 있습니다. 다른 사용자가 조직 그룹을 가져오도록 허용하려면 IMPORT ORGANIZATION USER GROUPS 권한을 부여하십시오.
조직 사용자 그룹을 일반 계정으로 가져오기 위한 구문은 다음과 같습니다.
ALTER ACCOUNT ADD ORGANIZATION USER GROUP <group_name>
조직 사용자 그룹을 가져와 사용자를 추가하는 예제는 확장된 예 을 참조하십시오.
사용자 가져오기 후 충돌 해결하기¶
일반 계정에서 조직 사용자를 가져오는 계정 관리자는 충돌이 있는지 수동으로 확인해야 합니다. 이러한 충돌은 사용자의 속성 또는 조직 사용자 그룹의 이름 사이에서 발생할 수 있습니다.
조직 사용자 그룹과 기존 역할 간의 충돌¶
조직 사용자 그룹의 이름이 일반 계정의 기존 역할 이름과 일치하는 경우 충돌이 발생합니다. 충돌이 해결될 때까지 그룹의 사용자는 가져오지 않습니다.
조직 사용자 그룹을 가져온 후 충돌이 있는지 확인하려면 다음과 같이 하십시오.
SHOW ORGANIZATION USER GROUPS 명령을 실행합니다.
is_imported
열에서 값이 TRUE 인지 확인합니다. 값이 FALSE 인 경우 조직 사용자 그룹을 성공적으로 가져오지 못했으며, 이는 충돌이 있음을 나타낼 수 있습니다.
역할을 그룹과 연결하여 역할과 조직 사용자 그룹 간의 충돌을 해결할 수 있습니다. 역할을 연결하면 앞으로 조직 사용자 그룹으로 관리할 수 있습니다. 충돌하는 역할을 연결하면 추가 작업 없이 조직 사용자 그룹이 계정에 추가됩니다. SYSTEM$LINK_ORGANIZATION_USER_GROUP 함수를 호출하여 역할을 조직 사용자 그룹과 링크합니다.
예를 들어, 조직 사용자 그룹 marketing_team
을 계정으로 가져오기 전에 계정에 marketing_team
역할이 있었다고 가정합니다. 역할을 조직 사용자 그룹에 연결하고 그룹 가져오기 프로세스를 완료하려면 다음을 실행합니다.
SELECT SYSTEM$LINK_ORGANIZATION_USER_GROUP('marketing_team');
조직 사용자와 기존 사용자 간의 충돌¶
다음 중 하나에 해당하는 경우 충돌이 발생합니다.
조직 사용자의
name
속성은 일반 계정에 있는 기존 사용자의name
속성과 일치합니다.조직 사용자의
login_name
속성은 일반 계정에 있는 기존 사용자의login_name
속성과 일치합니다.
조직 사용자 그룹을 가져온 후 사용자 충돌이 있는지 확인하려면 다음과 같이 하십시오.
SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP 명령을 실행합니다.
is_imported
열에서 값이 FALSE 인 행을 찾습니다. 해당 행에 있는 사용자의 속성 중 1개 이상이 기존 사용자의 속성과 충돌하는 경우.
팁
RESULT_SCAN 함수를 사용하여 SHOW ORGANIZATION USERS 의 출력을 후처리하고 is_imported
열에서 필터링할 수 있습니다. 예를 들어, marketing_team
조직 사용자 그룹에서 성공적으로 가져오지 못한 조직 사용자를 검색하려면 다음을 실행합니다.
SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP marketing_team;
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_imported" = 'false';
기존 사용자 오브젝트가 조직 사용자와 동일 인물에 해당하고 향후 해당 사용자를 조직 사용자로 관리하려는 경우 기존 사용자와 조직 사용자를 연결하여 충돌을 해결할 수 있습니다. SYSTEM$LINK_ORGANIZATION_USER 함수를 호출하여 기존 사용자와 조직 사용자를 링크합니다. 예를 들어, 기존 사용자 jloeb
를 조직 사용자 jloebsmith
와 연결하려면 다음을 실행합니다.
SELECT SYSTEM$LINK_ORGANIZATION_USER('jloeb', 'jloebsmith');
기존 로컬 사용자와 새 조직 사용자를 연결하지 않으려면 일반 계정에서 사용자 오브젝트 또는 해당 속성의 이름을 변경하여 충돌을 해결할 수 있습니다. 예를 들어, 기존 사용자와 조직 사용자의 로그인 이름이 모두 JOE_LOGIN
인 경우 일반 계정에서 다음을 실행하여 연결하지 않고 충돌을 방지할 수 있습니다.
USE ROLE ACCOUNTADMIN;
ALTER USER joe SET LOGIN_NAME = joe_login_renamed;
가져온 사용자 수정하기¶
일반 계정의 관리자는 ALTER USER 명령을 사용하여 사용자 오브젝트를 가져온 후 사용자 오브젝트의 속성의 하위 집합을 수정할 수 있습니다. 관리자는 조직 계정에서 조직 사용자에게 설정할 수 있는 속성을 제외한 모든 속성을 수정할 수 있습니다. 조직 계정에서만 설정할 수 있는 속성 목록은 CREATE ORGANIZATION USER 섹션을 참조하십시오.
조직 사용자 및 그룹 제거하기¶
조직 사용자 및 조직 사용자 그룹은 단일 계정에서 제거 하거나 조직 계정에 드래그 앤 드롭 하여 모든 계정에서 삭제할 수 있습니다.
단일 일반 계정에서 사용자 제거하기¶
계정 관리자는 ALTER ACCOUNT 명령을 실행하여 계정에서 조직 사용자 그룹을 제거할 수 있습니다. 조직 사용자 그룹을 제거하면 가져온 모든 사용자가 삭제되고 조직 사용자 그룹을 가져올 때 생성된 역할이 제거됩니다. 이 명령은 다른 일반 계정이나 조직 계정의 조직 사용자 및 조직 사용자 그룹에는 영향을 미치지 않습니다.
참고
조직 사용자는 여러 조직 사용자 그룹의 멤버가 될 수 있습니다. 사용자를 2개 이상의 조직 그룹에서 가져온 경우 일반 계정에서 그룹 중 하나를 제거해도 사용자는 제거되지 않습니다. 사용자는 모든 조직 사용자 그룹이 제거될 때까지 제거되지 않습니다.
예를 들어, 다음 명령은 data_stewards
그룹에서 가져온 모든 사용자를 삭제하고 data_stewards
역할을 삭제합니다.
ALTER ACCOUNT REMOVE ORGANIZATION USER GROUP data_stewards;
모든 일반 계정에서 사용자 삭제하기¶
조직 사용자가 조직 계정에서 삭제되면 해당 사용자를 가져온 모든 일반 계정에서 해당 사용자 오브젝트가 삭제됩니다. 조직 사용자를 삭제하려면 조직 계정에서 DROP ORGANIZATION USER 명령을 실행합니다.
조직 사용자 그룹이 조직 계정에서 삭제되면 조직 사용자에게 미치는 영향은 일반 계정의 사용자가 해당 계정으로 가져온 다른 조직 사용자 그룹에 속해 있는지 여부에 따라 달라집니다. 조직 사용자가 가져온 다른 조직 사용자 그룹에 속해 있는 경우 해당 사용자는 계정에서 제거되지 않습니다. 그렇지 않으면 조직 사용자 그룹을 삭제하면 그룹에서 가져온 모든 사용자가 제거됩니다.
조직 사용자 그룹을 삭제하면 해당 그룹을 가져올 때 생성된 역할도 제거됩니다.
조직 사용자 그룹을 삭제하려면 조직 계정에서 DROP ORGANIZATION USER GROUP 명령을 실행합니다.
조직 사용자 및 조직 사용자 그룹 연결 해제하기¶
조직 사용자를 일반 계정으로 성공적으로 가져오면 로컬 사용자 오브젝트가 조직 사용자에 링크됩니다. 사용자 오브젝트를 계정에 유지하되 더 이상 조직 사용자와 연결하지 않으려면 SYSTEM$UNLINK_ORGANIZATION_USER 함수를 사용하여 로컬 사용자를 조직 사용자로부터 연결 해제할 수 있습니다. 사용자의 모든 속성이 보존되며 앞으로도 로컬 사용자로 관리할 수 있습니다.
마찬가지로 SYSTEM$UNLINK_ORGANIZATION_USER_GROUP 함수를 사용하여 조직 사용자 그룹을 추가하여 생성한 역할의 연결을 해제할 수 있습니다. 이렇게 하면 역할에 대한 모든 내용은 동일하게 유지되지만 조직 사용자 그룹에서 연결이 해제됩니다.
확장된 예¶
- 조직 관리자 워크플로
조직 관리자가 되어 조직 계정에 로그인합니다.
데이터 관리자인 두 사람에 대한 조직 사용자를 생성합니다.
USE ROLE GLOBALORGADMIN; CREATE ORGANIZATION USER joe_kelley EMAIL = 'jkelley@example.com' LOGIN_NAME = 'jkelley@example.com'; CREATE ORGANIZATION USER grace_vivian EMAIL = 'gvivian@example.com' LOGIN_NAME = 'gvivian@example.com';
데이터 관리자의 논리적 그룹을 나타내는 조직 사용자 그룹을 생성합니다.
CREATE ORGANIZATION USER GROUP data_stewards_group;
조직 사용자를 새 조직 사용자 그룹에 추가합니다.
ALTER ORGANIZATION USER GROUP data_stewards_group ADD ORGANIZATION USERS joe_kelley, grace_vivian;
모든 일반 계정이 조직 사용자 그룹을 가져올 수 있도록 허용합니다.
ALTER ORGANIZATION USER GROUP data_stewards_group SET VISIBILITY = ALL;
- 계정 관리자 워크플로
계정 관리자가 되어 조직 사용자를 가져오려는 일반 계정에 로그인합니다.
계정으로 가져올 수 있는 조직 사용자 그룹을 나열합니다.
USE ROLE ACCOUNTADMIN; SHOW ORGANIZATION USER GROUPS;
조직 사용자 그룹을 계정으로 가져옵니다.
ALTER ACCOUNT ADD ORGANIZATION USER GROUP data_stewards_group;
조직 사용자 그룹과 기존 역할 간의 충돌이 있는지 확인합니다.
SHOW ORGANIZATION USER GROUPS;
is_imported
열의 값이 충돌이 없음을 나타내는 TRUE 인지 확인합니다.계정에 추가된 사용자를 목록으로 나열하고 충돌이 있는지 확인합니다.
SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP data_stewards_group;
모든 조직 사용자에 대해
is_imported
열의 값이 TRUE 인지 확인하여 충돌이 없음을 나타냅니다.