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 revogar a permissão CONNECT ON DATABASE de um usuário?
Atualizado em 2024-05-09 GMT+08:00

Como revogar a permissão CONNECT ON DATABASE de um usuário?

Cenário

Em um serviço, a permissão do usuário u1 para se conectar a um banco de dados precisa ser revogada. Depois que o comando REVOKE CONNECT ON DATABASE gaussdb FROM u1; é executado com sucesso, o usuário u1 ainda pode se conectar ao banco de dados. Isso significa que a revogação não terá efeito.

Análise de causa

Se você executar o comando REVOKE CONNECT ON DATABASE gaussdb from u1 para revogar as permissões do usuário u1, a revogação não terá efeito porque a permissão CONNECT do banco de dados é concedida ao PUBLIC. Portanto, você precisa especificar PUBLIC.

  • GaussDB(DWS) fornece um grupo implicitamente definido PUBLIC que contém todas as funções. Por padrão, todos os novos usuários e funções têm as permissões de PUBLIC. Para revogar permissões de PUBLIC de um usuário ou função, ou conceder novamente essas permissões a eles, adicione a palavra-chave PUBLIC na instrução REVOKE ou GRANT.
  • GaussDB(DWS) concede as permissões para objetos de certos tipos ao PUBLIC. Por padrão, as permissões em tabelas, colunas, sequências, fontes de dados externas, servidores externos, esquemas e tablespaces não são concedidas ao PUBLIC, mas as seguintes permissões são concedidas ao PUBLIC;
    • Permissão CONNECT de um banco de dados
    • permissão CREATE TEMP TABLE de um banco de dados
    • Permissão EXECUTE de uma função
    • Permissão USAGE para idiomas e tipos de dados (incluindo domínios)
  • Um proprietário de objeto pode revogar as permissões padrão concedidas a PUBLIC e conceder permissões a outros usuários conforme necessário.

Exemplo de operações

Execute o seguinte comando para revogar a permissão do usuário u1 para acessar o banco de dados gaussdb:

  1. Conecte-se ao banco de dados GaussDB(DWS) gaussdb.

    1
    2
    gsql -d gaussdb -p 8000 -h 192.168.x.xx -U dbadmin -W password -r
    gaussdb=>
    

  2. Crie usuário u1.

    1
    gaussdb=> CREATE USER u1 IDENTIFIED BY 'xxxxxxxx';
    

  3. Verifique se o usuário u1 pode acessar o GaussDB.

    1
    2
    gsql -d gaussdb -p 8000 -h 192.168.x.xx -U u1 -W password -r
    gaussdb=>
    

  4. Conecte-se ao banco de dados gaussdb como administrador dbadmin e execute o comando REVOKE para revogar a permissão connect on database do usuário public.

    1
    gsql -d gaussdb -h 192.168.x.xx -U dbadmin -p 8000 -r
    
    1
    2
    gaussdb=> REVOKE CONNECT ON DATABASE gaussdb FROM public;
    REVOKE
    

  5. Verifique o resultado. Use u1 para se conectar ao banco de dados. Se as seguintes informações forem exibidas, a permissão connect on database do usuário u1 foi revogada com êxito:

    1
    2
    3
    gsql -d gaussdb -p 8000 -h 192.168.x.xx -U u1 -W password -r
    gsql: FATAL:  permission denied for database "gaussdb"
    DETAIL:  User does not have CONNECT privilege.