MySQL
PostgreSQL

DB&ユーザー作成(PostgreSQL, MySQL)

概要

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';