Создать пользователя и выдать привилегии
Oracle
CREATE USER app IDENTIFIED BY "Strong#Pass1";
GRANT CREATE SESSION TO app;
GRANT SELECT, INSERT, UPDATE ON hr.employee TO app;Без CREATE SESSION пользователь не сможет подключиться. Для квоты: 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;Для таблиц, которые будут созданы в будущем: 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'@'%';'%' разрешает подключения с любого хоста; для безопасности по возможности указывайте конкретный IP/хост. CREATE USER/GRANT действуют сразу; FLUSH PRIVILEGES нужен, только если DML выполнялся напрямую над таблицами привилегий.
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;Login действует на весь сервер; user создаётся отдельно в каждой базе. Для роли: ALTER ROLE db_datareader ADD MEMBER app;
MongoDB
db.createUser({
user: "app",
pwd: "Strong#Pass1",
roles: [ { role: "readWrite", db: "mydb" } ]
})База, в которой создан пользователь, становится его auth db. Встроенные роли: 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 = включён, >password добавляет пароль, ~app:* — шаблон ключей, +@read/+@write — категории команд. Без сохранения теряется при перезапуске: ACL SAVE работает, только если настроен aclfile, иначе возвращает ошибку; в этом случае используйте CONFIG REWRITE.