Funções de colaborador no Collaboration Data Clean Rooms¶
Visão geral¶
Os colaboradores atuam como uma ou mais das funções a seguir em um cenário de colaboração de sala limpa. Nesse caso, uma função é um conjunto de recursos, não uma função RBAC:
Proprietário: o proprietário define, cria e detém a propriedade da colaboração, além de definir quais colaboradores são convidados e as funções deles. Um proprietário não é automaticamente um executor de análise ou provedor de dados e não tem nenhum privilégio de execução elevado. As principais habilidades do proprietário são criar a sala limpa, atribuir funções, determinar quem pode compartilhar dados com quem e desinstalar a sala limpa. Uma colaboração pode ter apenas um proprietário.
Provedor de dados: apresenta ofertas de dados, como tabelas e exibições, para uma colaboração e especifica quais executores de análise podem usá-las. Isto é, a conta A é provedora de dados para as contas B e C, conforme especificado na descrição da colaboração.
Executor de análise: executa modelos permitidos em ofertas de dados permitidas, conforme especificado pela definição da colaboração.
Um colaborador pode ter diversas funções em uma colaboração, e vários colaboradores podem ter a mesma função em uma colaboração (exceto a função de proprietário, que é atribuída somente a um usuário). Por exemplo, o proprietário de uma colaboração também pode ser provedor de dados e executor de análise.
Você pode ver suas funções disponíveis para uma colaboração na coluna ROLES chamando GET_STATUS, que lista suas funções na coluna ROLES. Por exemplo, se você for provedor de dados e quiser ver com quem pode compartilhar dados, examine as especificações da sua colaboração para ver os detalhes da sua função. Veja abaixo como verificar a especificação da colaboração em uma única chamada depois de ingressar em uma colaboração:
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
SELECT "COLLABORATION_SPEC" FROM $1
WHERE "SOURCE_NAME" = $collaboration_name;
O proprietário especifica todos os colaboradores e as respectivas funções quando criam a colaboração. Os colaboradores e as respectivas funções não podem ser alterados após a criação de uma colaboração. Como consequência, os seguintes recursos de função são corrigidos após a criação de uma colaboração:
O proprietário não pode ser alterado.
Os executores de análise não podem ser adicionados ou removidos.
A lista de provedores de dados para cada executor de análise não pode ser alterada. Se a conta A não foi definida como provedora de dados para a conta B quando a colaboração foi criada, a conta A nunca pode ser provedora de dados para a conta B.
No entanto, os colaboradores podem adicionar ou remover recursos após a criação de uma colaboração.
Exemplo¶
O exemplo a seguir mostra uma definição de colaboração muito básica que define funções, mas não define recursos. Você pode criar uma colaboração com ou sem recursos, e adicioná-los ou removê-los posteriormente.
api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
alice: corp1.acct123
bob: corp2.acctxyz
analysis_runners:
alice:
data_providers:
alice:
data_offerings: []
bob:
data_offerings: []
bob:
data_providers:
alice:
data_offerings: []
A colaboração anterior define os seguintes colaboradores e funções:
aliceé proprietária da colaboração, executora de análise e provedora de dados parabobe ela mesma.aliceé o alias definido na colaboração para a contacorp1.acct123.bobé executor de análise e provedor de dados paraalice, mas não para ele mesmo.bobé o alias definido na colaboração para a contacorp2.acctxyz.
Essas funções não podem ser modificadas, e novos colaboradores não podem ser adicionados após a criação da colaboração.
Os provedores de dados podem adicionar ofertas de dados após a criação de uma colaboração. Qualquer colaborador pode adicionar modelos após a criação de uma colaboração. O exemplo a seguir mostra como você pode usar a API Collaboration para adicionar recursos à colaboração anterior após sua criação:
api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
alice: corp1.acct123
bob: corp2.acctxyz
analysis_runners:
alice:
data_providers:
alice:
data_offerings:
- id: alice_data_1
- id: alice_data_2
bob:
data_offerings:
- id: bob_data_1
templates:
- id: template1 # Alice can run template1 using alice_data_1, alice_data_2, or bob_data_1.
bob:
data_providers:
alice:
data_offerings:
- id: alice_data_1
templates:
- id: template2 # Bob can run template2 using data from alice_data_1, provided by alice.
A colaboração modificada agora oferece suporte aos seguintes recursos e funcionalidades:
alicepode executar análises usandotemplate1com dados dealice_data_1,alice_data_2ebob_data_1.bobpode executartemplate2usando dados dealice_data_1.