Melhores práticas para gerenciamento de usuários
Um cluster do GaussDB(DWS) consiste principalmente de administradores de sistema e usuários comuns. Esta seção descreve as permissões de administradores de sistema e usuários comuns e descreve como criar usuários e consultar informações do usuário.
Administrador do sistema
O usuário dbadmin criado quando você inicia um cluster do GaussDB(DWS) é um administrador do sistema. Ele tem a mais alta permissão do sistema e pode executar todas as operações, incluindo operações em tablespaces, tabelas, índices, esquemas, funções e visualizações personalizadas, bem como consultar catálogos e visualizações do sistema.
Para criar um administrador de banco de dados, conecte-se ao banco de dados como administrador e execute a instrução CREATE USER ouALTER USER com SYSADMIN especificado.
Exemplos:
Crie o usuário Jim como administrador do sistema.
1
|
CREATE USER Jim WITH SYSADMIN password '{Password}'; |
Altere o usuário Tom para um administrador do sistema. ALTER USER pode ser usado apenas para usuários existentes.
1
|
ALTER USER Tom SYSADMIN; |
Usuário comum
Você pode executar a instrução SQL CREATE USER para criar um usuário comum. Um usuário comum não pode criar, modificar, deletar ou designar tablespaces e precisa receber a permissão para acessar tablespaces. Um usuário comum tem todas as permissões para suas próprias tabelas, esquemas, funções e exibições personalizadas, cria índices em suas próprias tabelas e consulta apenas alguns catálogos e exibições do sistema.
O cluster de banco de dados tem um ou mais bancos de dados nomeados. Os usuários são compartilhados dentro de todo o cluster, mas seus dados não são compartilhados.
As operações comuns do usuário são as seguintes. Substitua password pela senha real.
- Criar um usuário
1
CREATE USER Tom PASSWORD '{Password}';
- Alterar a senha de um usuário
- Atribuir permissões a um usuário
- Adicione CREATEDB quando você cria um usuário que tem a permissão para criar um banco de dados.
1
CREATE USER Tom CREATEDB PASSWORD '{Password}';
- Adicione a permissão CREATEROLE para um usuário.
1
ALTER USER Tom CREATEROLE;
- Revogar permissões de usuário
1
REVOKE ALL PRIVILEGES FROM Tom;
- Bloquear ou desbloquear um usuário
- Bloqueie o usuário Tom.
1
ALTER USER Tom ACCOUNT LOCK;
- Desbloqueie o usuário Tom.
1
ALTER USER Tom ACCOUNT UNLOCK;
- Excluir um usuário
1
DROP USER Tom CASCADE;
Consulta das informações de usuário
As exibições do sistema relacionadas a usuários, funções e permissões incluem ALL_USERS, PG_USER e PG_ROLES, e os catálogos do sistema incluem PG_AUTHID e PG_AUTH_MEMBERS.
- ALL_USERS exibe todos os usuários no banco de dados, mas não mostra os detalhes deles.
- PG_USER exibe informações do usuário, incluindo IDs de usuário, a permissão para criar bancos de dados e pools de recursos.
- PG_ROLES exibe informações sobre as atribuições do banco de dados.
- PG_AUTHID registra informações sobre identificadores de autenticação de banco de dados (funções), incluindo permissões de função para efetuar logon ou criar bancos de dados.
- PG_AUTH_MEMBERS armazena informações de funções contidas em um grupo de funções.
- Você pode executar PG_USER para consultar todos os usuários no banco de dados. O ID de usuário (USESYSID) e as permissões também podem ser consultados.
1 2 3 4 5 6 7 8 9 10 11 12
SELECT * FROM pg_user; usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valbegin | valuntil | respool | parent | spacelimit | useconfig | nodegroup | tempspacelimit | spillspacelim it ---------+----------+-------------+----------+-----------+---------+----------+----------+----------+--------------+--------+------------+-----------+-----------+----------------+-------------- --- Ruby | 10 | t | t | t | t | ******** | | | default_pool | 0 | | | | | kim | 21661 | f | f | f | f | ******** | | | default_pool | 0 | | | | | u3 | 22662 | f | f | f | f | ******** | | | default_pool | 0 | | | | | u1 | 22666 | f | f | f | f | ******** | | | default_pool | 0 | | | | | dbadmin | 16396 | f | f | f | f | ******** | | | default_pool | 0 | | | | | u5 | 58421 | f | f | f | f | ******** | | | default_pool | 0 | | | | | (6 rows)
- ALL_USERS exibe todos os usuários no banco de dados, mas não mostra os detalhes deles.
1 2 3 4 5 6 7 8 9 10 11 12
SELECT * FROM all_users; username | user_id ----------+--------- Ruby | 10 manager | 21649 kim | 21661 u3 | 22662 u1 | 22666 u2 | 22802 dbadmin | 16396 u5 | 58421 (8 rows)
- PG_ROLES armazena informações sobre funções que acessaram o banco de dados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
SELECT * FROM pg_roles; rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolauditadmin | rolsystemadmin | rolconnlimit | rolpassword | rolvalidbegin | rolv aliduntil | rolrespool | rolparentid | roltabspace | rolconfig | oid | roluseft | rolkind | nodegroup | roltempspace | rolspillspace ---------+----------+------------+---------------+-------------+--------------+-------------+----------------+---------------+----------------+--------------+-------------+---------------+----- ----------+--------------+-------------+-------------+-----------+-------+----------+---------+-----------+--------------+--------------- Ruby | t | t | t | t | t | t | t | t | t | -1 | ******** | | | default_pool | 0 | | | 10 | t | n | | | manager | f | t | f | f | f | f | f | f | f | -1 | ******** | | | default_pool | 0 | | | 21649 | f | n | | | kim | f | t | f | f | f | t | f | f | f | -1 | ******** | | | default_pool | 0 | | | 21661 | f | n | | | u3 | f | t | f | f | f | t | f | f | f | -1 | ******** | | | default_pool | 0 | | | 22662 | f | n | | | u1 | f | t | f | f | f | t | f | f | f | -1 | ******** | | | default_pool | 0 | | | 22666 | f | n | | | u2 | f | t | f | f | f | f | f | f | f | -1 | ******** | | | default_pool | 0 | | | 22802 | f | n | | | dbadmin | f | t | f | f | f | t | f | f | t | -1 | ******** | | | default_pool | 0 | | | 16396 | f | n | | | u5 | f | t | f | f | f | t | f | f | f | -1 | ******** | | | default_pool | 0 | | | 58421 | f | n | | | (8 rows)
- Para exibir as propriedades do usuário, consulte o catálogo do sistema PG_AUTHID, que armazena informações sobre identificadores de autorização do banco de dados (funções). Cada cluster, e não cada banco de dados, tem apenas um catálogo do sistema PG_AUTHID. Somente usuários com permissões de administrador do sistema podem acessar o catálogo.
1 2 3 4 5 6 7
SELECT * FROM pg_authid; rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolauditadmin | rolsystemadmin | rolconnlimit | rolpassword | rolvalidbegin | rolvaliduntil | rolrespool | roluseft | rolparentid | roltabspace | rolkind | rolnodegroup | roltempspace | rolspillspace | rolexcpdata | rolauthinfo ----------+----------+------------+---------------+-------------+--------------+-------------+----------------+---------------+----------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+---------------+--------------+----------+-------------+-------------+---------+--------------+--------------+---------------+-------------+------------- Ruby | t | t | t | t | t | t | t | t | t | -1 | sha256366f1e665be208e6015bc3c5795d13e4dc297a148dca6c60346018c80e5c04c9ba170384ce44609b31baa741f09a3ea5bedc7dadb906286ca994067c3fbf672dc08c981929e326ca08c005d8df942994e146ed3302af47000b36e9852b50e39dmd585de11aafebd90ec620b201fc36f07a5ecdficefade3a1456ec0aca9a0ee01e3bf2971d1dbafd604e596149e2e2928be4060dec2bd8688776588b4cd8c64fd38f1b0beab1603129fa396556ba8aa4c7d6e137a04623 | | | default_pool | t | 0 | | n | 0 | | | | sysadmin | f | t | f | f | f | t | f | f | t | -1 | sha256ecaa7f0ca4436143af43074f16cdd825783ad1a5d659fd94f5e2fa5124e7da44045ecf40bda1a97975fcf5920dca0c8be375be5c71b51cb1eeeba0851fb3648cfa49f55989f83fd9baf1a9d5853ce19125f4fc29a7c709c095ed02d00638410dmd556d6e2dcc41594dc7ad8ee909ef81637ecdficefadefd7d9704ee06affef9581cd6a50a546607f88891198e96a5e84e7e83dccf56c5cd20a500bbc5248e8ea51f0bca70c5a8dcf00953f8b62c7a181368153abce760 | | | default_pool | f | 0 | | n | | | | | Tom | f | t | f | t | f | t | f | f | f | -1 | sha256f43c4f52ac51e297bc4dbdbc751fcf05319c15681dbf5a9c5777d2edce45cb592a948b25457a728e99a3e0608592f33b0a4312eba6124936522304ba298caa2002a04578860fecb0286d7c7baec09365eafd049b2b99f74f21a08864dd7d3f2amd515ee49f0b18ef8e7d0cd27d91ce2fa9decdficefade16bab5f05b6d7c86a19ae6406cc59c437506c3f6187bfdf3eefc7a7c7033afa076361b255cc8b6ccb6e19d4767effaec654b3308cc72cebb891d00a4a10362da | | | default_pool | f | 0 | | n | | | | | (3 rows)
Consulta de recursos do usuário
- Consultar a cota de recursos e o uso de todos os usuários
1
SELECT * FROM PG_TOTAL_USER_RESOURCE_INFO;
Exemplo do uso de recursos de todos os usuários:1 2 3 4 5 6 7
username | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed ----------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+------------- perfadm | 0 | 17250 | 0 | 0 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 usern | 0 | 17250 | 0 | 48 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 userg | 34 | 15525 | 23.53 | 48 | 0 | -1 | 0 | -1 | 814955731 | -1 | 6111952 | 1145864 | 763994 | 143233 | 42678 | 8001 userg1 | 34 | 13972 | 23.53 | 48 | 0 | -1 | 0 | -1 | 814972419 | -1 | 6111952 | 1145864 | 763994 | 143233 | 42710 | 8007 (4 rows)
- Consultar a cota de recursos e o uso de um usuário especificado
1
SELECT * FROM GS_WLM_USER_RESOURCE_INFO('username');
Exemplo do uso de recursos do usuário Tom:1 2 3 4 5
SELECT * FROM GS_WLM_USER_RESOURCE_INFO('Tom'); userid | used_memory | total_memory | used_cpu | total_cpu | used_space | total_space | used_temp_space | total_temp_space | used_spill_space | total_spill_space | read_kbytes | write_kbytes | read_counts | write_counts | read_speed | write_speed -------+-------------+--------------+----------+-----------+------------+-------------+-----------------+------------------+------------------+-------------------+-------------+--------------+-------------+--------------+------------+------------- 16523 | 18 | 2831 | 0 | 19 | 0 | -1 | 0 | -1 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 0 (1 row)
- Consultar o uso de I/O de um usuário especificado
1
SELECT * FROM pg_user_iostat('username');
Exemplo do uso de I/O do usuário Tom:1 2 3 4 5
SELECT * FROM pg_user_iostat('Tom'); userid | min_curr_iops | max_curr_iops | min_peak_iops | max_peak_iops | io_limits | io_priority -------+---------------+---------------+---------------+---------------+-----------+------------- 16523 | 0 | 0 | 0 | 0 | 0 | None (1 row)