Do not speak Portuguese? Translate this site with Google or Bing Translator
Criar usuario do PostgreSQl

Posted on: November 05, 2021 12:03 PM

Posted by: Renato

Categories: postgresql database db dba sql

Views: 3321

Criar usuario do PostgreSQl

PostgreSQL CREATE ROLE

O PostgreSQL usa funções para representar contas de usuário. Ele não usa o conceito de usuário como outros sistemas de banco de dados.

Normalmente, as funções podem efetuar login são chamadas de funções de login. Eles são equivalentes aos usuários em outros sistemas de banco de dados.

Quando as funções contêm outras funções, são funções de grupo de chamadas.

Instrução CREATE ROLE do PostgreSQL
Para criar uma nova função, você usa a CREATE ROLEinstrução da seguinte maneira:

CREATE ROLE role_name;

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Quando você cria uma função, ela é válida em todos os bancos de dados no servidor de banco de dados (ou cluster).

A instrução a seguir usa a CREATE ROLEinstrução para criar uma nova função chamada bob:

CREATE ROLE thiago;

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Para obter todas as funções no servidor de banco de dados PostgreSQL atual, você pode consultá-las no pg_rolescatálogo do sistema da seguinte maneira:

SELECT rolname FROM pg_roles;

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Saída:

          rolname
---------------------------
 pg_monitor
 pg_read_all_settings
 pg_read_all_stats
 pg_stat_scan_tables
 pg_read_server_files
 pg_write_server_files
 pg_execute_server_program
 pg_signal_backend
 postgres
 thiago

 
Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Observe que as funções que começam com pg_são funções do sistema.

Se você usar a psqlferramenta, poderá usar o  \ducomando para listar todas as funções existentes no servidor de banco de dados PostgreSQL atual.

\du

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Saída:

                                  List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 thiago    | Cannot login                                               | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 
 
Linguagem de código:  Sessão Shell  ( shell )
Como você pode ver claramente na saída, a função bobnão pode efetuar login.

Para permitir que a função bob efetue login no servidor de banco de dados PostgreSQL, você precisa adicionar o LOGINatributo a ela.

Atributos da função
Os atributos de uma função definem privilégios para essa função, incluindo login, superusuário, criação de banco de dados, criação de função, senha, etc:

CREATE ROLE name WITH option;

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Nesta sintaxe, a WITHpalavra-chave é opcional. E o optionpode ser um ou mais atributos, incluindo SUPER, CREATEDB, CREATEROLE, etc.

1) Criar funções de login
Por exemplo, a instrução a seguir cria uma função chamada aliceque tem o privilégio de login e uma senha inicial:

CREATE ROLE ana 
LOGIN 
PASSWORD 'securePass1';

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Observe que você coloca a senha entre aspas simples ( ').

Agora, você pode usar a função alicepara fazer login no servidor de banco de dados PostgreSQL usando a psqlferramenta cliente:

psql -U ana -W postgres

Linguagem de código:  Sessão Shell  ( shell )
Ele solicitará uma senha. Você precisa inserir a senha inserida no CREATE ROLEextrato.

2) Criar funções de superusuário
A instrução a seguir cria uma função chamada johnque possui o atributo superusuário.

CREATE ROLE renato 
SUPERUSER 
LOGIN 
PASSWORD 'securePass1';

Linguagem de código:  SQL (Structured Query Language)  ( sql )
O superusuário pode substituir todas as restrições de acesso no banco de dados, portanto, você deve criar esta função apenas quando necessário.

Observe que você deve ser um superusuário para criar outra função de superusuário.

3) Criar funções que podem criar bancos de dados
Se você deseja criar funções que tenham o privilégio de criação de banco de dados, use o CREATEDBatributo:

CREATE ROLE dba 
CREATEDB 
LOGIN 
PASSWORD 'Abcd1234';

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
4) Criar funções com período de validade
Para definir uma data e hora após a qual a senha da função não é mais válida, você usa o atributo valid until:

VALID UNTIL 'timestamp'


Linguagem de código:  JavaScript  ( javascript )
Por exemplo, a seguinte declaração cria uma dev_apifunção com senha válida até o final de 2029:

CREATE ROLE dev_api WITH
LOGIN
PASSWORD 'securePass1'
VALID UNTIL '2030-01-01';

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
Depois de um segundo tique em 2030, a senha de dev_api não é mais válida.

5) Criar funções com limite de conexão
Para especificar o número de conexões simultâneas que uma função pode fazer, use o CONNECTION LIMIT atributo:

CONNECTION LIMIT connection_count


Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
O seguinte cria uma nova função chamada api que pode fazer 1000 conexões simultâneas:

CREATE ROLE api
LOGIN
PASSWORD 'securePass1'
CONNECTION LIMIT 1000;

Linguagem de código:  dialeto PostgreSQL SQL e PL / pgSQL  ( pgsql )
O psqlcomando a seguir mostra todas as funções que criamos até agora:

\du

Linguagem de código:  Sessão Shell  ( shell )
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 ana       |                                                            | {}
 api       | 1000 connections                                           | {}
 thiago    | Cannot login                                               | {}
 dba       | Create DB                                                  | {}
 renato    | Superuser                                                  | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

 
Linguagem de código:  Sessão Shell  ( shell )

Resumo

O PostgreSQL usa funções para representar contas de usuário. Uma função que pode efetuar login é equivalente a uma conta do usuário em outros sistemas de banco de dados.
Use atributos de função para especificar os privilégios das funções, por exemplo, LOGINpermite que a função faça login, CREATEDBpermite que a função crie um novo banco de dados, SUPERUSERpermite que a função tenha todos os privilégios.

- https://www.postgresqltutorial.com/postgresql-roles/


1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (16) Variados (109) PHP (133) Laravel (171) Black Hat (3) front-end (29) linux (114) postgresql (39) Docker (28) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (56) devops (25) nodejs (5) npm (3) nvm (1) git (8) firefox (1) react (7) reactnative (5) collections (1) javascript (7) reactjs (8) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (2) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (12) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (5) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (3) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (43) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (2) jwt (5) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (3) Architecture (4) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (2) autorizacao (2) authentication (4) authorization (3) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1) Axios (1) Fetch (1) Deepin (1) vue (4) nuxt (1) PKCE (1) Oauth2 (2) webhook (1) TypeScript (1) tailwind (1) gource (2)

New Articles



Get Latest Updates by Email