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.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive
Central de ajuda/ GaussDB(DWS)/ Perguntas frequentes/ Conta, senha e permissão/ Como o GaussDB(DWS) implementa o isolamento da carga de trabalho?

Como o GaussDB(DWS) implementa o isolamento da carga de trabalho?

Atualizado em 2025-01-23 GMT+08:00

Isolamento da carga de trabalho

No GaussDB(DWS), você pode isolar cargas de trabalho por meio de configurações de banco de dados e esquemas. As suas diferenças são as seguintes:

  • Os bancos de dados não podem se comunicar uns com os outros e compartilham muito poucos recursos. Suas conexões e permissões podem ser isoladas.
  • Esquemas compartilham mais recursos do que bancos de dados. As permissões de usuário em esquemas e objetos subordinados podem ser configuradas de forma flexível usando a sintaxe GRANT e REVOKE.

É aconselhável usar esquemas para isolar serviços para conveniência e compartilhamento de recursos. Recomenda-se que os administradores de sistema criem esquemas e bancos de dados e atribuam as permissões necessárias aos usuários.

Figura 1 Usado para controle de permissão.

Banco de dados

Um banco de dados é uma coleção física de objetos de banco de dados. Recursos de diferentes bancos de dados são completamente isolados (exceto alguns objetos compartilhados). Os bancos de dados são usados para isolar cargas de trabalho. Objetos em bancos de dados diferentes não podem acessar uns aos outros. Por exemplo, objetos no Banco de dados B não podem ser acessados no Banco de dados A. Portanto, ao fazer logon em um cluster, você deve se conectar ao banco de dados especificado.

Esquema

Em um banco de dados, os objetos de banco de dados são logicamente divididos e isolados com base em esquemas.

Com o gerenciamento de permissões, você pode acessar e operar objetos em esquemas diferentes na mesma sessão. Esquemas contêm objetos que os aplicativos podem acessar, como tabelas, índices, dados em vários tipos, funções e operadores.

Objetos de banco de dados com o mesmo nome não podem existir no mesmo esquema, mas os nomes de objetos em esquemas diferentes podem ser os mesmos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=> CREATE SCHEMA myschema;
CREATE SCHEMA
gaussdb=> CREATE SCHEMA myschema_1;
CREATE SCHEMA

gaussdb=> CREATE TABLE myschema.t1(a int, b int) DISTRIBUTE BY HASH(b);
CREATE TABLE
gaussdb=> CREATE TABLE myschema.t1(a int, b int) DISTRIBUTE BY HASH(b);
ERROR:  relation "t1" already exists
gaussdb=> CREATE TABLE myschema_1.t1(a int, b int) DISTRIBUTE BY HASH(b);
CREATE TABLE

Os esquemas dividem logicamente as cargas de trabalho. Essas cargas de trabalho são interdependentes com os esquemas. Portanto, se um esquema contiver objetos, excluí-lo causará erros com informações de dependência exibidas.

1
2
3
4
gaussdb=> DROP SCHEMA myschema_1;
ERROR: cannot drop schema myschema_1 because other objects depend on it 
Detail: table myschema_1.t1 depends on schema myschema_1 
Hint: Use DROP ... CASCADE to drop the dependent objects too.

Quando um esquema é excluído, a opção CASCADE é usada para excluir os objetos que dependem do esquema.

1
2
3
gaussdb=> DROP SCHEMA myschema_1 CASCADE;
NOTICE:  drop cascades to table myschema_1.t1
gaussdb=> DROP SCHEMA

Usuário/função

Os usuários e as funções são usados para implementar o controle de permissão no servidor de banco de dados (cluster). Eles são os proprietários e executores de cargas de trabalho de cluster e gerenciam todas as permissões de objeto em clusters. Uma função não está confinada em um banco de dados específico. No entanto, ao efetuar logon no cluster, ele deve especificar explicitamente um nome de usuário para garantir a transparência da operação. As permissões de um usuário para um banco de dados podem ser especificadas por meio do gerenciamento de permissões.

Um usuário é o sujeito de permissões. O gerenciamento de permissões é, na verdade, o processo de decidir se um usuário tem permissão para executar operações em objetos de banco de dados.

Gerenciamento de permissões

O gerenciamento de permissões no GaussDB(DWS) se divide em três categorias:

  • Permissão do sistema

    As permissões do sistema também são chamadas de atributos de usuário, incluindo SYSADMIN, CREATEDB, CREATEROLE, AUDITADMIN e LOGIN.

    Elas podem ser especificadas apenas pela sintaxe CREATE ROLE ou ALTER ROLE. A permissão SYSADMIN pode ser concedida e revogada usando GRANT ALL PRIVILEGE e REVOKE ALL PRIVILEGE, respectivamente. As permissões do sistema não podem ser herdadas por um usuário de uma função e não podem ser concedidas usando o PUBLIC.

  • Permissões

    Conceda permissões de uma função ou usuário a uma ou mais funções ou usuários. Nesse caso, cada função ou usuário pode ser considerado como um conjunto de uma ou mais permissões de banco de dados.

    Se WITH ADMIN OPTION for especificada, o membro poderá, por sua vez, conceder permissões na função a outras pessoas e revogar permissões na função também. Se uma função ou usuário concedido com determinadas permissões for alterado ou revogado, as permissões herdadas da função ou usuário também serão alteradas.

    Um administrador de banco de dados pode conceder permissões e revogá-las de qualquer função ou usuário. As funções com permissão CREATEROLE podem conceder ou revogar a participação em qualquer função que não seja de administrador.

  • Permissão de objeto

    Permissões em um objeto de banco de dados (tabela, visão, coluna, banco de dados, função, esquema ou tablespace) podem ser concedidas a uma atribuição ou usuário. O comando GRANT pode ser usado para conceder permissões a um usuário ou função. Essas permissões concedidas são adicionadas às já existentes.

Exemplo de isolamento de esquema

Exemplo 1:

Por padrão, o proprietário de um esquema tem todas as permissões em objetos no esquema, incluindo a permissão de exclusão. O proprietário de um banco de dados tem todas as permissões em objetos no banco de dados, incluindo a permissão de exclusão. Portanto, é aconselhável controlar estritamente a criação de bancos de dados e esquemas. Crie bancos de dados e esquemas como administrador e atribua permissões relacionadas aos usuários.

  1. Atribua a permissão para criar esquemas no banco de dados testdb ao usuário user_1 como usuário dbadmin.

    1
    2
    testdb=> GRANT CREATE ON DATABASE testdb to user_1;
    GRANT
    

  2. Alterne para o usuário user_1.

    1
    2
    testdb=> SET SESSION AUTHORIZATION user_1 PASSWORD '********';
    SET
    

    Crie um esquema chamado myschema_2 no banco de dados testdb como user_1.

    1
    2
    testdb=> CREATE SCHEMA myschema_2;
    CREATE SCHEMA
    

  3. Alterne para o administrador dbadmin.

    1
    2
    testdb=> RESET SESSION AUTHORIZATION;
    RESET
    

    Crie table t1 no esquema myschema_2 como administrador dbadmin.

    1
    2
    testdb=> CREATE TABLE myschema_2.t1(a int, b int) DISTRIBUTE BY HASH(b);
    CREATE TABLE
    

  4. Alterne para o usuário user_1.

    1
    2
    testdb=> SET SESSION AUTHORIZATION user_1 PASSWORD '********';
    SET
    

    Exclua a tabela t1 criada pelo administrador dbadmin no esquema myschema_2 como usuário user_1.

    1
    2
    testdb=> drop table myschema_2.t1;
    DROP TABLE
    

Exemplo 2:

Devido ao isolamento lógico dos esquemas, os objetos do banco de dados precisam ser verificados tanto no nível do esquema quanto no nível do objeto.

  1. Conceda a permissão na tabela myschema.t1 para user_1.

    1
    2
    gaussdb=> GRANT SELECT ON TABLE myschema.t1 TO user_1;
    GRANT
    

  2. Alterne para o usuário user_1.

    1
    2
    SET SESSION AUTHORIZATION user_1 PASSWORD '********';
    SET
    

    Consulte a tabela myschema.t1.

    1
    2
    3
    gaussdb=> SELECT * FROM myschema.t1;
    ERROR:  permission denied for schema myschema
    LINE 1: SELECT * FROM myschema.t1;
    

  3. Alterne para o administrador dbadmin.

    1
    2
    gaussdb=> RESET SESSION AUTHORIZATION;
    RESET
    

    Conceda a permissão na tabela myschema.t1 ao usuário user_1.

    1
    2
    gaussdb=> GRANT USAGE ON SCHEMA myschema TO user_1;
    GRANT
    

  4. Alterne para o usuário user_1.

    1
    2
    gaussdb=> SET SESSION AUTHORIZATION user_1 PASSWORD '********';
    SET
    

    Consulte a tabela myschema.t1.

    1
    2
    3
    4
    gaussdb=> SELECT * FROM myschema.t1;
     a | b
    ---+---
    (0 rows)
    

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback