Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Perguntas frequentes/ Conta, senha e permissão/ Como criar usuários e tabelas de banco de dados privados?
Atualizado em 2024-05-09 GMT+08:00

Como criar usuários e tabelas de banco de dados privados?

Cenário

O administrador do sistema dbadmin tem permissão para acessar tabelas criadas por usuários comuns por padrão. Quando a Separação de permissões está ativada, o administrador dbadmin não tem permissão para acessar tabelas de usuários comuns ou executar operações de controle (DROP, ALTER e TRUNCATE).

Se um usuário privado e uma tabela privada (tabela criada pelo usuário privado) precisarem ser criados, e a tabela privada puder ser acessada apenas pelo usuário privado e o administrador do sistema dbadmin e outros usuários comuns não tiverem permissão para acessar a tabela (INSERT, DELETE, UPDATE, SELECT e COPY). No entanto, o administrador do sistema dbadmin às vezes precisa executar as operações DROP, ALTER ou TRUNCATE sem autorização do usuário privado. Neste caso, pode criar um usuário (usuário privado) com o atributo INDEPENDENT.

Figura 1 Usuários privados

Princípios

Esta função é implementada através da criação de um usuário com o atributo INDEPENDENT.

INDEPENDENT | NOINDEPENDENT define funções privadas e independentes. Para uma função com o atributo INDEPENDENT, os direitos dos administradores para controlar e acessar essa função são separados. As regras específicas são as seguintes:

  • Os administradores não têm direitos para adicionar, excluir, consultar, modificar, copiar ou autorizar os objetos de tabela correspondentes sem a autorização da função INDEPENDENT.
  • Os administradores não têm direitos para modificar a relação de herança da função INDEPENDENT sem a autorização desta função.
  • Os administradores não têm direitos para modificar o proprietário dos objetos de tabela para a função INDEPENDENT.
  • Os administradores não têm direitos para alterar a senha do banco de dados da função INDEPENDENT. A função INDEPENDENT deve gerenciar sua própria senha, que não pode ser redefinida se perdida.
  • O atributo SYSADMIN de um usuário não pode ser alterado para o atributo INDEPENDENT.

Procedimento

  1. Conecte-se ao banco de dados do DWS como usuário dbadmin.
  2. Execute a seguinte instrução SQL para criar o usuário privado u1:

    1
    CREATE USER u1 WITH INDEPENDENT IDENTIFIED BY 'password';
    

  1. Alterne para o usuário u1, crie a tabela test e insira dados na tabela.

    1
    2
    3
    CREATE TABLE test (id INT, name VARCHAR(20));
    INSERT INTO test VALUES (1, 'joe');
    INSERT INTO test VALUES (2, 'jim');
    

  2. Alterne para o usuário dbadmin e execute a seguinte instrução SQL para verificar se o usuário dbadmin pode acessar a tabela privada test criada pelo usuário privado u1:

    1
    SELECT * FROM u1.test;
    

    O resultado da consulta indica que o usuário dbadmin não tem a permissão de acesso. Isso significa que o usuário privado e a tabela privada foram criados com sucesso.

  3. Execute a instrução DROP como usuário dbadmin para excluir a tabela test.

    1
    DROP TABLE u1.test;