Tornar objetos de banco de dados detectáveis no Universal Search¶
O Universal Search ajuda você a descobrir objetos de banco de dados na conta. Por padrão, você só pode descobrir objetos aos quais já recebeu acesso. Mesmo que tenha acesso a várias contas dentro da sua organização Snowflake, você não poderá ver objetos fora da conta na qual está conectado porque as concessões de acesso não abrangem contas.
Os administradores podem permitir que os usuários descubram objetos aos quais ainda não têm acesso, incluindo objetos em outras contas dentro de sua organização Snowflake, gerenciando a visibilidade de objetos.
Nota
Você pode associar objetos a informações de contato de modo que se um usuário realizar uma pesquisa e não tiver o privilégio para acessar um objeto, ele poderá selecionar Request Access para ver informações de contato.
Propriedade OBJECT_VISIBILITY¶
A propriedade OBJECT_VISIBILITY controla a detectabilidade de objetos na conta, permitindo que usuários sem privilégios de acesso explícitos encontrem objetos e solicitem acesso. Aumentar a visibilidade dos objetos na conta pode simplificar a colaboração e agilizar as solicitações de acesso.
OBJECT_VISIBILITY pode ser definida em uma conta, banco de dados ou esquema e segue o modelo de herança do Snowflake: configurações em um nível mais alto (por exemplo, contas) se aplicam automaticamente a níveis inferiores (por exemplo, bancos de dados), a menos que sejam substituídos.
Você pode definir OBJECT_VISIBILITY para um dos seguintes valores:
Uma especificação do YAML descrevendo a visibilidade em um dos seguintes formatos:
$$ organization_targets: - all_accounts_including_external $$
Ou
$$ organization_targets: - account: <account_name_1> - account: <account_name_2> - ... - organization_user_group: <org_user_group_1> - organization_user_group: <org_user_group_2> $$
Na sintaxe acima:
all_accounts_including_external: especifica que todos os usuários em todas as contas da organização podem ver o objeto. Isso inclui todas as contas dentro da organização, mesmo aquelas às quais partes externas possam ter recebido acesso, tais como contas de leitor.account: account_name: especifica que todos os usuários da conta especificada podem ver o objeto. Você pode especificar várias contas. Observe queaccounté o nome da conta, não o localizador da conta. Você deve especificar apenas o nome da conta, excluindo o nome da organização.09-22organization_user_group: org_user_group: especifica que o grupo de usuários da organização especificado pode ver o objeto em todas as contas da organização em que o grupo de usuários da organização foi importado.
PRIVILEGED: Especifica que somente as funções dentro da conta atual que recebem um privilégio explícito no objeto podem ver o objeto. Este é o comportamento padrão no Snowflake.
É possível reverter um objeto para a visibilidade PRIVILEGED a qualquer momento.
Para sintaxes, notas de uso e exemplos específicos, consulte os seguintes tópicos:
Comandos CREATE¶
Comandos ALTER¶
Requisitos de controle de acesso¶
As funções que usam essa propriedade devem ter os seguintes privilégios, no mínimo:
Privilégio |
Objeto |
Notas |
|---|---|---|
MANAGE VISIBILITY |
Conta |
Somente a função SECURITYADMIN tem este privilégio por padrão. O privilégio pode ser concedido a funções adicionais, conforme necessário. |
OWNERSHIP |
Banco de dados ou esquema |
Necessário para executar uma instrução ALTER DATABASE ou ALTER SCHEMA para definir a visibilidade do objeto. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Exemplos¶
Como tornar um banco de dados amplamente visível¶
A seguinte instrução torna o banco de dados product_analytics visível para todos os usuários na conta atual (ACME_ENGINEERING):
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
$$;
A instrução a seguir torna o banco de dados visível para todos os usuários em duas contas adicionais dentro da organização (ACME_MARKETING e ACME_SALES):
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- account: acme_engineering
- account: acme_marketing
- account: acme_sales
$$;
A instrução a seguir torna o banco de dados visível para todos os usuários em todas as contas dentro da organização ACME:
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- all_accounts_including_external
$$;
Como tornar um banco de dados visível para grupos de usuários de organizações específicas¶
A instrução a seguir torna o banco de dados visível para grupos de usuários de organizações específicas em todas as contas dentro da organização ACME onde o grupo de usuários da organização foi importado:
ALTER DATABASE product_analytics
SET OBJECT_VISIBILITY =
$$
organization_targets:
- organization_user_group: engineering
- organization_user_group: marketing
- organization_user_group: sales
$$;
Limitações¶
Os objetos que podem ser descobertos e não acessíveis só são exibidos na Universal Search. Eles não ficam visíveis no navegador de objetos do banco de dados ou nos comandos SQL que mostram metadados (comandos SHOW etc.).
Para um esquema, você pode definir a propriedade OBJECT_VISIBILITY como PRIVILEGED para substituir quaisquer configurações de visibilidade mais amplas que possam ser herdadas do nível da conta ou do banco de dados, garantindo que o esquema permaneça acessível somente pelo proprietário da.
A propriedade OBJECT_VISIBILITY não pode ser definida ou substituída abaixo do nível do esquema. No nível do esquema, os usuários podem ver todos os objetos ou nenhum.
A pesquisa pode levar algumas horas para refletir as alterações na visibilidade do objeto.