GaussDB definir banco de dados somente leitura
Gauss não tem um modo somente leitura no sentido estrito. Você só pode configurar a sessão de login subsequente ou a transação atual para o modo somente leitura ajustando os parâmetros ou configurando o modo de transação.
1. Defina o banco de dados como somente leitura.
Observe que a configuração somente leitura aqui só tem efeito para a nova sessão e o banco de dados não precisa ser reiniciado e terá efeito permanentemente.
alter user {
user_name} set default_transaction_read_only=on;
2. Defina o banco de dados como gravável.Note
que a configuração somente leitura aqui só tem efeito para a nova sessão e o banco de dados não precisa ser reiniciado para entrar em vigor permanentemente.
alter user {
user_name} set default_transaction_read_only=off;
3. Exemplos
- Definir usuário somente leitura
GAUSSDB1=# alter user user_ufo set default_transaction_read_only=on;
ALTER ROLE
- Desligue a conexão do usuário,
observe que o nome do usuário precisa estar em maiúsculas
select pg_terminate_backend(PID) from pg_stat_activity where usename = 'USER_UFO' ;
- Reconecte a sessão do usuário
e faça login novamente. Para aplicativos, geralmente há um mecanismo de reconexão.
[dbadmin@cn-north3a-DBA-DB01 ~]$ gsql -h111.111.111.111 -p8635 -Uuser_ufo -dufo
Password for user benchmarksql:
gsql (9.2.1)
Type "help" for help.
ufo=>
ufo=>
ufo=> select * from test;
ID | NAME
----+------
1 | ufo111
2 | ufo112
(2 rows)
- Teste de leitura e gravação do usuário
ufo=> insert into test values ('3', 'ufo113');
ERROR: cannot execute INSERT in a read-only transaction
ufo=>