概要
MySQLやPostgreSQLでユーザーを作ることがあったので、メモを残しておく。
MySQL
# DROP DATABASE `sample`;
# DROP USER `user_app`;
-- データベース作成
CREATE DATABASE `sample`;
-- DB選択
USE `sample`;
-- ユーザー作成
CREATE USER `user_app`@`localhost` IDENTIFIED BY 'hogehoge';
-- 権限追加
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `sample`.* TO `user_app`@`localhost` identified by 'hogehoge';
PostgreSQL
-- データベースの所有者(グループロール)作成 ※ログインできないユーザー
CREATE ROLE "sample_dba" NOLOGIN;
-- ユーザー作成(ユーザー向けアプリ) & グループロールのメンバーに追加
CREATE ROLE "user_app" PASSWORD 'hogehoge' LOGIN;
GRANT "sample_dba" TO "user_app";
-- データベース作成
CREATE DATABASE "sample" OWNER "sample_dba" ENCODING 'UTF8';