postgresql使用者安全配置

科技小能手發表於2017-11-12

一、配置說明:

角色名稱:user01 

1.user01許可權說明:

連線test資料庫,未授權時無法連線其它資料庫;

在指定schema,建立檢視刪除表,檢視schema中物件;

2.其它普通使用者:

無法連線test資料庫及schema(sales)中物件,需要授權;


二、操作步驟:

  1. instance(例項級): role(角色)

$ psql postgres

postgres=# CREATE ROLE user01 LOGIN NOSUPERUSER NOCREATEDB;


2.database(資料庫級): CREATE(schemas) and CONNECT(database)

$ psql postgres

postgres=# CREATE DATABASE test;

postgres=# REVOKE ALL ON DATABASE test FROM public; — 禁止其它普通role連線test

postgres=# GRANT CONNECT ON DATABASE test TO user01;


3.schema(架構級):

CREATE(put object into schema)

USAGE (allow us to actually look into a schema and see which objects are present).

$psql test

test=# REVOKE ALL ON SCHEMA public FROM public;– 其它普通role無法連線test

test=# CREATE SCHEMA sales;

CREATE SCHEMA

test=# GRANT CREATE,USAGE ON SCHEMA sales TO user01; — user01 可以在sales中建立、檢視物件

GRANT

test=# q


$ psql test -U user01

test=> CREATE TABLE sales.t_sales (id int4);

CREATE TABLE


4.table(表級): grant 

預設user01建立、drop表和DML表內容

5.column(列級):grant

預設user01建立、drop表和DML列內容

本文轉自 pgmia 51CTO部落格,原文連結:http://blog.51cto.com/heyiyi/1871200


相關文章