達夢資料庫,設定表的訪問控制許可權

2021-10-10 04:12:37 字數 1960 閱讀 7073

大家都會遇到這樣的場景,出於對資料庫訪問安全的考慮,對於某些使用者我們不想讓他們看到全庫的表,只想給他們特定表的訪問許可權。那麼在dm資料庫中我們該如何去配置相應的許可權呢?  我們下面來進行詳細解析。 我們的測試環境是dm8

1、我們首先來建立乙個測試使用者test;

2、接下來看一下test使用者相應的角色和許可權。

預設是public角色。檢視一下public角色所擁有的許可權。

sql>select grantee,privilege from dba_sys_privs where grantee=『public』;

public角色預設擁有當前使用者下所有表的insert,update,delete,select,grant……許可權

3、我們來建兩個測試表。在sysdba使用者下建立乙個t1表,test使用者下建立t2表。

sql>create table sysdba.t1 (id int,name varchar(20));

sql>insert into sysdba.t1 values (1,』sysdba』);

sql>commit;

sql>create table test.t2(id int,name varchar(20));

sql>insert into test.t2 values(2,』test』);

sql>commit;

4、使用test使用者登入資料庫,訪問相應的表。

[dmdba@neokylin6-dm8 ~]$ disql test/test123456

sql> select * from sysdba.t1;

sql> select * from t2;

test使用者只能訪問本使用者下的t2表,不能訪問sysdba使用者下的t1表。

5、下面我們收回test的public許可權,以sysdba使用者登入執行。

sql>revoke  public  from test;

我們再查詢一下test使用者的訪問許可權

我們看到test使用者的public許可權已被收回。再以test使用者登入進行查詢,發現test.t2表的訪問許可權已經沒有了,sysdba.t1表的訪問許可權也已經沒有了。

我們給test使用者配置相應的表的許可權,比如我們只給test使用者檢視sysdba.t1的許可權:sql>grant select on sysdba.t1 to test;

用test使用者登入,我們可以查詢sysdba.t1表的資料,但是卻查詢不了test.t2表的資料,因為我們沒有賦給test使用者,test.t2的查詢許可權,那怕t2表是test使用者下的表。

這樣我們表的訪問控制許可權就配置完成了。

達夢資料庫外部表

外部表,是指不存在於資料庫中的表。通過向達夢提供描述外部表的元資料,我們可以把乙個作業系統檔案當成乙個唯讀的資料庫表,就像這些資料儲存在乙個普通資料庫表中一樣來進行訪問。外部表是對資料庫表的延伸。建立簡單的達夢外部表的過程 1.假設外部資料在test.txt中 dmdba localhost cat...

達夢資料庫表空間

5 維護回滾表空間 6 臨時表空間 7 刪除表空間 system 系統表空間,存放資料字典資訊 roll 回滾表空間,存放回滾記錄 temp 臨時表空間,做排序 main 系統預設表空間,存放使用者資料。建立使用者,沒有指定表空間,預設就是 main 表空 間。hmain huge 表空間 查詢表空...

達夢資料庫表空間

表空間是一種邏輯儲存結構,資料庫的物件如表 索引等在邏輯上都是儲存在指定的表空間中。system 系統表空間,用於存放資料字典資訊 roll 回滾表空間,用於存放的回滾資料 temp 臨時表空間,用於存放是臨時資料 建立表空間 create table vaspace.student stu no ...