阅读背景:

Postgresql安全设置

来源:互联网 
https://blog.51cto.com/heyiyi/1871200

一、配置解释:

角色名称:user01 

1.user01权限解释:

衔接test数据库,未授权时没法衔接其它数据库;

在指定schema,树立\查看\删除表,查看schema中对象;

2.其它普通用户:

没法衔接test数据库及schema(sales)中对象,须要授权;



二、操作步骤:

instance(实例级): role(角色)

$ psql postgres

postgres=# CREATE ROLE user01 LOGIN NOSUPERUSER NOCREATEDB;

ALTER ROLE user01 WITH PASSWORD "654321";/*修正密码*/  

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列内容


测试衔接,user01可以衔接别的数据库,可以建表,但是别的用户不可以操作user01的test数据库

别的用户拜访test直接报没有权限

https://blog.51cto.com/heyiyi/1871200

一、配置解释:

角



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: