DBAtlas · Atlas de operações de banco de dados

Criar um usuário e conceder privilégios

Oracle

CREATE USER app IDENTIFIED BY "Strong#Pass1";
GRANT CREATE SESSION TO app;
GRANT SELECT, INSERT, UPDATE ON hr.employee TO app;

Sem CREATE SESSION o usuário não consegue se conectar. Para uma cota: ALTER USER app QUOTA 100M ON users;

PostgreSQL

CREATE ROLE app LOGIN PASSWORD 'Strong#Pass1';
GRANT CONNECT ON DATABASE mydb TO app;
GRANT USAGE ON SCHEMA public TO app;
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO app;

Para tabelas criadas no futuro: ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app;

MySQL

CREATE USER 'app'@'%' IDENTIFIED BY 'Strong#Pass1';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app'@'%';

'%' permite conexões de qualquer host; por segurança, especifique um IP/host determinado sempre que possível. CREATE USER/GRANT têm efeito imediato; FLUSH PRIVILEGES só é necessário se DML foi executado diretamente nas tabelas de grants.

SQL Server

CREATE LOGIN app WITH PASSWORD = 'Strong#Pass1';
USE mydb;
CREATE USER app FOR LOGIN app;
GRANT SELECT, INSERT, UPDATE ON SCHEMA::dbo TO app;

Um login vale para todo o servidor; um user é criado separadamente em cada banco de dados. Para uma role: ALTER ROLE db_datareader ADD MEMBER app;

MongoDB

db.createUser({
  user: "app",
  pwd: "Strong#Pass1",
  roles: [ { role: "readWrite", db: "mydb" } ]
})

O db em que o usuário é criado passa a ser seu auth db. Roles nativas: read, readWrite, dbAdmin, clusterAdmin...

Redis

ACL SETUSER app on >Strong#Pass1 ~app:* +@read +@write
# To persist: ACL SAVE if an aclfile is defined, otherwise CONFIG REWRITE (users are written to redis.conf)

on = habilitado, >password adiciona uma senha, ~app:* é o padrão de chaves, +@read/+@write são categorias de comandos. Se não for persistido, perde-se no restart: ACL SAVE só funciona quando um aclfile está configurado e retorna erro caso contrário; nesse caso, use CONFIG REWRITE.

Abrir no DBAtlas →