(PostgreSQL)关于表权限
-
- データベースのオーナーとしてユーザー(user1)を作成
-
- user1にテーブルの操作権限を付与
- user1としてデータベースにログインし、テーブル操作
通过执行这些操作来加深对于表格权限的理解。
准备好
psql -l
由于创建新的数据库也很麻烦,所以我将继续使用我在之前写这篇文章时创建的“mydb”。
psql -U オーナー名 mydb
CREATE TABLE test_permission_table (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);
INSERT INTO test_permission_table (name) VALUES
('denji'),
('power'),
('aki');
准备好的桌子 de
idname1’denji’2’power’3’aki’
创建用户
CREATE USER user1 WITH PASSWORD 'user1';
这次密码任意。
已创建的用户可以通过以下指令进行确认。
SELECT usename FROM pg_user;
授予权限
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name TO user_name;
这次,对于user1,针对test_permission_table,只赋予SELECT权限。
GRANT SELECT ON test_permission_table TO user1;
如果想要确认权限,请执行以下的SQL语句。
SELECT grantee, privilege_type
FROM information_schema.table_privileges
WHERE table_name = 'テーブル名';
用户切换
请把登录账户从所有者切换到用户1,并重新登录。
psql -U user1 mydbv
我试着操作桌子。
SELECT * FROM test_permission_table;
-- 実行できた
INSERT INTO test_permission_table (name) VALUES ('kishibe');
-- ERROR: permission denied for table test_permission_table
有权限进行选择操作,但无权限进行插入操作。