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)/
Melhores práticas/
Gerenciamento de segurança/
Controle de acesso baseado em função (RBAC)
Atualizado em 2024-05-09 GMT+08:00
Controle de acesso baseado em função (RBAC)
O que é o RBAC?
- O controle de acesso baseado em função (RBAC) é conceder permissões a funções e permitir que os usuários obtenham permissões associando-se a funções.
- Uma função é um conjunto de permissões.
- O RBAC simplifica muito o gerenciamento de permissões.
O que é o modelo RBAC?
Atribua permissões apropriadas às funções.
Associe usuários às funções.
Cenários
Suponha que existam dois esquemas, s1 e s2.
Existem dois grupos de usuários:
- Os usuários u1 e u2 podem consultar todas as tabelas em s1 e atualizar todas as tabelas em s2.
- Os usuários u3 e u4 podem consultar todas as tabelas em s2 e atualizar todas as tabelas em s1.
Procedimento para conceder permissões
- Conecte-se ao banco de dados do DWS como usuário dbadmin.
- Execute as instruções a seguir para criar os esquemas s1 e s2 e os usuários de u1 a u4:
Substitua {password} pela senha real.
1 2 3 4 5 6
CREATE SCHEMA s1; CREATE SCHEMA s2; CREATE USER u1 PASSWORD '{password}'; CREATE USER u2 PASSWORD '{password}'; CREATE USER u3 PASSWORD '{password}'; CREATE USER u4 PASSWORD '{password}';
- Copie e execute as seguintes instruções para criar as tabelas s1.t1 e s2.t1:
1 2
CREATE TABLE s1.t1 (c1 int, c2 int); CREATE TABLE s2.t1 (c1 int, c2 int);
- Execute a instrução a seguir para inserir dados nas tabelas:
1 2
INSERT INTO s1.t1 VALUES (1,2); INSERT INTO s2.t1 VALUES (1,2);
- Execute as seguintes instruções para criar quatro funções, cada uma com a permissão de consulta ou atualização da tabela s1 ou s2:
1 2 3 4
CREATE ROLE rs1_select PASSWORD disable; -- Permission to query s1 CREATE ROLE rs1_update PASSWORD disable; -- Permission to update s1 CREATE ROLE rs2_select PASSWORD disable; -- Permission to query s2 CREATE ROLE rs2_update PASSWORD disable; -- Permission to update s2
- Execute as seguintes instruções para conceder as permissões de acesso dos esquemas s1 e s2 às funções:
1
GRANT USAGE ON SCHEMA s1, s2 TO rs1_select, rs1_update,rs2_select, rs2_update;
- Execute as seguintes instruções para conceder permissões específicas às funções:
1 2 3 4
GRANT SELECT ON ALL TABLES IN SCHEMA s1 TO rs1_select; -- Grant the query permission on all the tables in s1 to the rs1_select role. GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s1 TO rs1_update; -- Grant the query and update permissions on all the tables in s1 to the rs1_update role. GRANT SELECT ON ALL TABLES IN SCHEMA s2 TO rs2_select; -- Grant the query permission on all the tables in s2 to the rs2_select role. GRANT SELECT,UPDATE ON ALL TABLES IN SCHEMA s2 TO rs2_update; -- Grant the query and update permissions on all the tables in s2 to the rs2_update role.
- Execute as seguintes instruções para conceder atribuições aos usuários:
1 2
GRANT rs1_select, rs2_update TO u1, u2; -- Users u1 and u2 have the permissions to query s1 and update s2. GRANT rs2_select, rs1_update TO u3, u4; -- Users u3 and u4 have the permissions to query s2 and update s1.
- Execute a instrução a seguir para exibir a função vinculada a um usuário específico:
1
\du u1;
- Comece outra sessão. Conecte-se ao banco de dados como o usuário u1.
1
gsql -d gaussdb -h GaussDB(DWS)_EIP -U u1 -p 8000 -r -W {password};
- Execute as seguintes instruções na nova sessão para verificar se o usuário u1 pode consultar, mas não pode atualizar s1.t1:
1 2
SELECT * FROM s1.t1; UPDATE s1.t1 SET c2 = 3 WHERE c1 = 1;
- Execute as seguintes instruções na nova sessão para verificar se o usuário u1 pode atualizar s2.t1:
1 2
SELECT * FROM s2.t1; UPDATE s2.t1 SET c2 = 3 WHERE c1 = 1;
Tópico principal: Gerenciamento de segurança
Feedback
Esta página foi útil?
Deixar um comentário
Obrigado por seus comentários. Estamos trabalhando para melhorar a documentação.
O sistema está ocupado. Tente novamente mais tarde.