# 刪除public模式,各自使用私有模式管理資料(需用管理使用者操作)
postgres@s2ahumysqlpg01-> psql
psql (12.4)
type "help" for help.
postgres=# drop database testdb ;
postgres=# create database testdb ;
create database
\c testdb
testdb=# drop schema if exists public;
drop schema
#建立三個使用者(需用管理使用者操作)
testdb=# create user asher encrypted password '123456';
# 建立三個使用者對應的schema並各自關聯(需用管理使用者操作)testdb=# create schema asher authorization asher;
postgres@s2ahumysqlpg01-> psql -uasher testdbpassword for user asher:
psql (12.4)
type "help" for help.
testdb=>
create table tbl_asher1(id int);
create table tbl_asher2(id int);
insert into tbl_asher1 values(100);
insert into tbl_asher2 values(200),(300);
testdb=> \d
list of relations
schema | name | type | owner
--------+------------+-------+-------
asher | tbl_asher1 | table | asher
asher | tbl_asher2 | table | asher
(2 rows)
psql (12.4)
type "help" for help.
testdb=> \d
did not find any relations.
create table
testdb=> \d
list of relations
schema | name | type | owner
--------+----------+-------+-------
(1 row)
psql (12.4)
type "help" for help.
create table
testdb=> \d
list of relations
schema | name | type | owner
--------+----------+-------+-------
(1 row)
使用asher使用者配置當前所有表的select許可權
使用asher使用者配置當前所有表的update許可權
# 使用asher使用者配置新增表的預設許可權
psql (12.4)
type "help" for help.
testdb=> select * from asher.tbl_asher1;
id
-----
100(1 row)
testdb=> select * from asher.tbl_asher2;
id
-----
200300
(2 rows)
# 更新測試
testdb=> update asher.tbl_asher1 set id=id+1;
update 1
testdb=> update asher.tbl_asher2 set id=id+1;
update 2
testdb=>
# 刪除測試
testdb=> delete from asher.tbl_asher1;
error: permission denied for table tbl_asher1
testdb=> delete from asher.tbl_asher2;
error: permission denied for table tbl_asher2
psql (12.4)
type "help" for help.
testdb=> \d
list of relations
schema | name | type | owner
--------+----------+-------+-------
(1 row)
testdb=> select * from asher.tbl_asher1;
id
-----
100(1 row)
testdb=> select * from asher.tbl_asher2;
id
-----
200300
(2 rows)
更新測試:
testdb=> update asher.tbl_asher1 set id=null;
error: permission denied for table tbl_asher1
testdb=> update asher.tbl_asher2 set id=null;
error: permission denied for table tbl_asher2
刪除測試:
testdb=> delete from asher.tbl_asher1;
error: permission denied for table tbl_asher1
testdb=> delete from asher.tbl_asher2;
error: permission denied for table tbl_asher2
testdb=>
postgres@s2ahumysqlpg01-> psql -uasher testdb
password for user asher:
psql (12.4)
type "help" for help.
testdb=> create table tbl_asher3(id int);
create table
testdb=> insert into tbl_asher3 values(500),(900);
insert 0 2
test=> select * from asher.tbl_asher3;
id
-----
500900
(2 rows)
test=> update asher.tbl_asher3 set id=id+1;
update 2
test=> select * from asher.tbl_asher3;
id
-----
501901
(2 rows)
test=> update asher.tbl_asher3 set id=id+1;
error: permission denied for table tbl_asher3
連線或切換到相應db中去訪問資料
來自為知筆記(wiz)
C 預設訪問許可權
c 的預設訪問許可權老是搞混,特此記下。宣告類 方法 字段 屬性時不加訪問許可權修飾符時的訪問許可權是什麼呢?1.宣告命名空間 類,前面不加限制訪問修飾符時,預設訪問許可權為internal 訪問僅限於當前程式集。大龍注 從通俗的角度來說,乙個專案也就是乙個程式集。2.宣告類成員 域 屬性 方法 預...
C 預設訪問許可權
c 的預設訪問許可權老是搞混,特此記下。宣告類 方法 字段 屬性時不加訪問許可權修飾符時的訪問許可權是什麼呢?1.宣告命名空間 類,前面不加限制訪問修飾符時,預設訪問許可權為internal 訪問僅限於當前程式集。2.宣告類成員 域 屬性 方法 預設為private 以及結構型別,前面不加限制訪問修...
C 的預設訪問許可權
1.在namespace中的類 介面預設是internal型別的,也可以顯示的定義為public型別,不允許是其他訪問型別。2.在乙個類裡面,屬性和方法預設是private的,可以顯示的定義為public private protected internal或protected internal等訪...