程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫對user的相關訪問控制實操

Oracle數據庫對user的相關訪問控制實操

編輯:Oracle數據庫基礎

以下的文章主要是講述Oracle數據庫對user的相關訪問控制的實際操作,以下文章介紹的是在introduction to Oracle 9i SQL student guide的第二卷中看見的,寫完才發現之前有過相關、甚至更全面的介紹了。但還是發布吧。

1、控制user的訪問

主要有以下幾方面:

控制database的訪問

控制database中特定的對象的訪問

授予一定的訪問Oracle 數據字典的權限

為database對象創建synonym

database的安全性可以被定義為兩類:系統的安全和data的安全。前者包括在system 級別的database的訪問與使用,如username和passWord、給user分配的磁盤空間以及user可執行的系統操作。後者包括對database對象的訪問及操作的安全控制。

1)系統權限

主要有:CREATE USER, DROP USER, DROP ANY TABLE, BACKUP ANY TABLE, SELECT ANY TABLE, CREATE ANY TABLE

2)創建users

CREATE USER user IDENTIFIED BY passWord;

3)授予權限

GRANT privilege [, privilege ...] TO user [, user| role, PUBLIC ...];

對於應用開發者,一般至少會需要下面的權限:

CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW, CREATE PROCEDURE

4)修改user的密碼

ALTER USER user IDENTIFIED BY nowpassWord;

5)對象權限

GRANT object_priv|ALL [(columns)] ON object TO {user | role | PUBLIC} [WITH GRANT OPTION];

其中,ALL表示所有對象權限

2、role

1)role是一組相關權限的集合,可以被一起授予user,從而簡化授權和收回權限的操作。一個user可以被授予多個roles,一個role也可以被授予給多個user。

CREATE ROLE role;

隨後,可以用grant語句給role授權。PUBLIC表示將對象權限授予所有users。

2)給role授予相應權限的操作和上面講的給user授權是一致的。

3、獲得權限上授予情況信息的視圖

4、對象權限的收回

REVOKE {privilege [, privilege ... ] | ALL} ON object FROM {user [, user ... ] | role | PUBLIC} [CASCADE CONSTRAINTS];

其中,CASCADE CONSTRAINTS子句會收回所有通過REFERENCES方法創建的參照完整性約束的權限。在revoke之後,所有由with grant option進行授權的user的相應權限也會被收回。

5、database link(可以使本地user訪問遠程database)

database link是一個指針,定義了一個Oracle database server與另一個database server進行交互的方法。link 指針實際是一個數據字典表中的實體。為了訪問link,必須連接包含該數據字典實體的本地database。

database link的最大的優點是它允許users訪問其他user在遠程database的objects。

具體創建實例:

CREATE PUBLIC DATABASE LINK hq.acme.com USING ’sales’;

其中,USING子句指明了遠程database的service名稱。database link創建之後,就可發起如下的訪問:

SELECT FROM [email protected];

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved