(PostgreSQL)关于表权限

    • データベースのオーナーとしてユーザー(user1)を作成

 

    • user1にテーブルの操作権限を付与

 

    user1としてデータベースにログインし、テーブル操作

通过执行这些操作来加深对于表格权限的理解。

准备好

psql -l
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313039323336362f66343330633665362d306262652d363861652d323035352d3537316335656230393465662e706e67.png

由于创建新的数据库也很麻烦,所以我将继续使用我在之前写这篇文章时创建的“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

有权限进行选择操作,但无权限进行插入操作。

广告
将在 10 秒后关闭
bannerAds