當前位置:首頁 » 操作系統 » 資料庫有哪些許可權

資料庫有哪些許可權

發布時間: 2023-01-12 06:11:21

⑴ Oracle資料庫面試題 用戶的許可權都有哪些

系統許可權: 允許用戶執行特定的資料庫動作,如創建表、創建索引、連接實例等(對用戶而言)
對象許可權: 允許用戶操縱一些特定的對象,如讀取視圖,可更新某些列、執行存儲過程等(是針對表或視圖而言的)
1.系統許可權
超過一百多種有效的許可權(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)
資料庫管理員具有高級許可權以完成管理任務,例如:
–創建新用戶
–刪除用戶
–刪除表
–備份表
系統許可權分類:
DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以創建資料庫結構。
RESOURCE:擁有Resource許可權的用戶只可以創建實體,不可以創建資料庫結構。
CONNECT:擁有Connect許可權的用戶只可以登錄Oracle,不可以創建實體,不可以創建資料庫結構。
對於普通用戶:授予connect, resource許可權。
對於DBA管理用戶:授予connect,resource, dba許可權。
a.常用的系統許可權:
CREATE SESSION 創建會話
CREATE SEQUENCE 創建序列
CREATE SYNONYM 創建同名對象
CREATE TABLE 在用戶模式中創建表
CREATE ANY TABLE 在任何模式中創建表
DROP TABLE 在用戶模式中刪除表
DROP ANY TABLE 在任何模式中刪除表
CREATE PROCEDURE 創建存儲過程
EXECUTE ANY PROCEDURE 執行任何模式的存儲過程
CREATE USER 創建用戶
DROP USER 刪除用戶
CREATE VIEW 創建視圖
2.對象許可權
不同的對象具有不同的對象許可權
對象的擁有者擁有所有許可權
對象的擁有者可以向外分配許可權
ORACLE一共有種對象許可權
對象許可權 表 視圖 序列 過程
修改(alter) √ √
刪除(delete) √ √
執行(execute) √
索引(index) √
插入(insert) √ √
關聯(references) √ √
選擇(select) √ √ √
更新(update) √ √

⑵ 資料庫的訪問許可權都有什麼

怎樣允許他人查看或執行查詢,但不能更改數據或查詢設計?

答:在安全工作組里,可以指定他人查看查詢返回數據的許可權。如果是操作查詢,還可以允許他們執行查詢,即使限制他們不得查看查詢的基表或基礎查詢。

1、在「設計」視圖中打開查詢。
2、在查詢「設計」視圖中單擊設計網格與欄位列表外的任何地方,以選定查詢。
3、單擊工具欄上的「屬性」按鈕 ,以顯示查詢的屬性表。
4、將「執行許可權」屬性設置為「所有者的」。

設置了此屬性後,應出現以下情形:

所有用戶都具有查詢所有者的查看或執行查詢許可權。
只有查詢所有者才能保存更改過的查詢。
只有查詢所有者才能更改查詢的所有權。

注釋 也可以設置所有新查詢的默認許可權。請在「工具」菜單上單擊「選項」,再單擊「表/查詢」選項卡,然後單擊想要使用的「執行許可權」選項。

問:怎樣定義用戶級安全?

答:

1、加入一個安全工作組或新建一個工作組信息文件。
要點 要完全確保資料庫的安全,請不要使用安裝 Microsoft Access
時創建的工作組信息文件所定義的默認工作組。而應該確保定義所加入的工作組的工作組信息文件是使用唯一的工作組 ID (WID) 創建的,否則應該創建一個新的工作組。

2、激活「登錄」對話框。
操作方法:啟動 Microsoft Access ,打開資料庫,
單擊「工具」菜單「安全」子菜單中的「用戶與組帳號」命令,單擊「用戶」選項卡,確保在「名稱」框中預定義的「管理員」用戶帳號呈高亮度顯示,單擊「更改登錄密碼」選項卡,單擊「新密碼」框,然後鍵入新密碼。不要在「舊密碼」框中輸入任何內容,
在「驗證」框中再次鍵入密碼進行確認,然後單擊「確定」按鈕。退出ACCESS並重新啟動ACCESS,就會出現「登錄」對話框。

3、創建管理員的用戶帳號。
操作方法:
1)打開工作組管理器,按下「聯接。。。」按鈕,選擇 使用在第1 步驟中創建的安全工作組信息文件,退出管理器,啟動 Microsoft Access。
要點 如果要確保資料庫是完全安全的,請不要使用安裝 Microsoft Access
時創建的工作組信息文件中定義的默認工作組,並確保定義所用工作組的工作組信息文件是以唯一的工作組 ID (WID) 創建的,否則就應該重新創建一個工作組信息文件。

2)選擇「工具」菜單「安全」子菜單中的「用戶與組帳號」命令,單擊「用戶」選項卡上的「新建」按鈕, 在「新用戶/組」對話框中,鍵入管理員帳號名稱和個人 ID
(PID),然後單擊「確定」按鈕新建帳號。
警告 一定要記住正確的帳號名和 PID,包括字母的大小寫,並其將其放在安全的地方。如果要重新創建帳號,必須提供其名稱和 PID。遺忘或丟失了帳號名和 PID
將無法恢復。

3)在「可用的組」框中,單擊「管理員組」,然後單擊「添加」按鈕。Microsoft Access
將把新的管理員帳號添加到管理員組並在「隸屬於」框中顯示「管理員組」。

4)單擊「確定」按鈕新建管理員帳號。

4、退出 Microsoft Access 並以新建的管理員身份登錄。

5、刪除管理員組中的管理員帳號。
操作方法:選擇「工具」菜單「安全」子菜單中的「用戶與組帳號」命令,在「用戶」選項卡上的「名稱」框中輸入要移去的用戶。在「隸屬於」框中,選擇要「管理員組」的組,然後單擊「刪除」按鈕。

6、打開要設置安全的資料庫。

7、單擊「工具」菜單「安全」子菜單中的「用戶級安全性向導」命令。

8、根據向導對話框中的指示完成各個步驟。 ]

「用戶級安全性向導」將創建一個新的資料庫,並將原有資料庫中所有對象的副本導出到新的資料庫中,然後通過取消用戶組對新資料庫對象的所有許可權,為向導第一個對話框中的選定對象類型設置安全,然後加密新資料庫。原有資料庫沒有進行任何更改。表之間的關系和所有的鏈接表在新的資料庫中都將重建。

現在,只有在步驟 1
中加入的工作組管理員組成員可以訪問新資料庫中設置了安全的對象。「用戶」組則不具備對這些對象的許可權。要限制用戶和/或組對這些對象的訪問必須為其設置許可權。

另外,你可以定義不同的試圖,這樣就給不同的人,不同的信息表示了

⑶ Mysql的許可權有哪些

MySQL的許可權有哪些?
一.許可權表
mysql資料庫中的3個許可權表:user
、db、
host
許可權表的存取過程是:
1)先從user表中的host、
user、
password這3個欄位中判斷連接的IP、用戶名、密碼是否存在表中,存在則通過身份驗證;
2)通過許可權驗證,進行許可權分配時,按照useràdbàtables_privàcolumns_priv的順序進行分配。即先檢查全局許可權表user,如果user中對應的許可權為Y,則此用戶對所有資料庫的許可權都為Y,將不再檢查db,
tables_priv,columns_priv;如果為N,則到db表中檢查此用戶對應的具體資料庫,並得到db中為Y的許可權;如果db中為N,則檢查tables_priv中此資料庫對應的具體表,取得表中的許可權Y,以此類推。
二.MySQL各種許可權(共27個)
(以下操作都是以root身份登陸進行grant授權,以p1@localhost身份登陸執行各種命令。)
1.
usage
連接(登陸)許可權,建立一個用戶,就會自動授予其usage許可權(默認授予)。
mysql>
grant
usage
on
*.*
to
『p1′@』localhost』
identified
by
『123′;
該許可權只能用於資料庫登陸,不能執行任何操作;且usage許可權不能被回收,也即REVOKE用戶並不能刪除用戶。
2.
select
必須有select的許可權,才可以使用select
table
mysql>
grant
select
on
pyt.*
to
『p1′@』localhost』;
mysql>
select
*
from
shop;
3.
create
必須有create的許可權,才可以使用create
table
mysql>
grant
create
on
pyt.*
to
『p1′@』localhost』;
4.
create
routine
必須具有create
routine的許可權,才可以使用{create
|alter|drop}
{procere|function}
mysql>
grant
create
routine
on
pyt.*
to
『p1′@』localhost』;
當授予create
routine時,自動授予EXECUTE,
ALTER
ROUTINE許可權給它的創建者:
mysql>
show
grants
for
『p1′@』localhost』;
+—————————————————————————+
Grants
for
p1@localhost
+————————————————————————–+
|
GRANT
USAGE
ON
*.*
TO
『p1′@』localhost』
IDENTIFIED
BY
PASSWORD
『*′
|
|
GRANT
SELECT,
CREATE,
CREATE
ROUTINE
ON
`pyt`.*
TO
『p1′@』localhost』|
|
GRANT
EXECUTE,
ALTER
ROUTINE
ON
PROCEDURE
`pyt`.`pro_shop1`
TO
『p1′@』localhost』
|
+————————————————————————————-+
5.
create
temporary
tables(注意這里是tabl

⑷ 資料庫中用戶許可權的種類有哪些

①對象許可權 作用:決定用戶對資料庫對象所執行的操作,包括用戶對資料庫中的表、視圖、列或存儲過程等對象的操作許可權
②語句許可權 作用:決定用戶能否操作資料庫和創建資料庫對象
③隱含許可權 作用:控制那些只能由預定義系統角色的成員或資料庫對象所有者執行的活動。

⑸ 資料庫許可權分為幾種,它們有什麼區別

用戶在具有了訪問資料庫的許可權之後,就可以授予其訪問資料庫對象的許可權了。可授予對象的許可權包括以下幾種:
SELECT
允許用戶對表或視圖發出SELECT語句。
INSERT
允許用戶對表或視圖發出INSERT語句。
UPDATE
允許用戶對表或視圖發出UPDATE語句。
DELETE
允許用戶對表或視圖發出DELETE語句。
EXECUTE
允許用戶對存儲過程發出EXECUTE語句。

⑹ MySQL的許可權有哪些

MySQL各種許可權(共27個)
(以下操作都是以root身份登陸進行grant授權,以p1@localhost身份登陸執行各種命令。)
1. usage
連接(登陸)許可權,建立一個用戶,就會自動授予其usage許可權(默認授予)。
mysql> grant usage on *.* to 『p1′@』localhost』 identified by 『123′;
該許可權只能用於資料庫登陸,不能執行任何操作;且usage許可權不能被回收,也即REVOKE用戶並不能刪除用戶。
2. select
必須有select的許可權,才可以使用select table
mysql> grant select on pyt.* to 『p1′@』localhost』;
mysql> select * from shop;
3. create
必須有create的許可權,才可以使用create table
mysql> grant create on pyt.* to 『p1′@』localhost』;
4. create routine
必須具有create routine的許可權,才可以使用{create |alter|drop} {procere|function}
mysql> grant create routine on pyt.* to 『p1′@』localhost』;
當授予create routine時,自動授予EXECUTE, ALTER ROUTINE許可權給它的創建者:
mysql> show grants for 『p1′@』localhost』;

⑺ MySQL的許可權有哪些

MySQL的許可權有哪些

  • 一.許可權表


  • mysql資料庫中的3個許可權表:user 、db、 host


  • 許可權表的存取過程是:


  • 1)先從user表中的host、 user、 password這3個欄位中判斷連接的IP、用戶名、密碼是否存在表中,存在則通過身份驗證;


  • 2)通過許可權驗證,進行許可權分配時,按照useràdbàtables_privàcolumns_priv的順序進行分配。即先檢查全局許可權表user,如果user中對應的許可權為Y,則此用戶對所有資料庫的許可權都為Y,將不再檢查db, tables_priv,columns_priv;如果為N,則到db表中檢查此用戶對應的具體資料庫,並得到db中為Y的許可權;如果db中為N,則檢查tables_priv中此資料庫對應的具體表,取得表中的許可權Y,以此類推。


  • 二.MySQL各種許可權(共27個)


  • (以下操作都是以root身份登陸進行grant授權,以p1@localhost身份登陸執行各種命令。)


  • 1. usage


  • 連接(登陸)許可權,建立一個用戶,就會自動授予其usage許可權(默認授予)。


  • mysql> grant usage on *.* to 『p1′@』localhost』 identified by 『123′;


  • 該許可權只能用於資料庫登陸,不能執行任何操作;且usage許可權不能被回收,也即REVOKE用戶並不能刪除用戶。


  • 2. select


  • 必須有select的許可權,才可以使用select table


  • mysql> grant select on pyt.* to 『p1′@』localhost』;


  • mysql> select * from shop;


  • 3. create


  • 必須有create的許可權,才可以使用create table


  • mysql> grant create on pyt.* to 『p1′@』localhost』;


  • 4. create routine


  • 必須具有create routine的許可權,才可以使用{create |alter|drop} {procere|function}


  • mysql> grant create routine on pyt.* to 『p1′@』localhost』;


  • 當授予create routine時,自動授予EXECUTE, ALTER ROUTINE許可權給它的創建者:


  • mysql> show grants for 『p1′@』localhost』;


  • +—————————————————————————+


  • Grants for p1@localhost


  • +————————————————————————–+


  • | GRANT USAGE ON *.* TO 『p1′@』localhost』 IDENTIFIED BY PASSWORD 『*′ |


  • | GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO 『p1′@』localhost』|


  • | GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO 『p1′@』localhost』 |


  • +————————————————————————————-+


  • 5. create temporary tables(注意這里是tables,不是table)


  • 必須有create temporary tables的許可權,才可以使用create temporary tables.


  • mysql> grant create temporary tables on pyt.* to 『p1′@』localhost』;


  • [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


  • mysql> create temporary table tt1(id int);


  • 6. create view


  • 必須有create view的許可權,才可以使用create view


  • mysql> grant create view on pyt.* to 『p1′@』localhost』;


  • mysql> create view v_shop as select price from shop;


  • 7. create user


  • 要使用CREATE USER,必須擁有mysql資料庫的全局CREATE USER許可權,或擁有INSERT許可權。


  • mysql> grant create user on *.* to 『p1′@』localhost』;


  • 或:mysql> grant insert on *.* to p1@localhost;


  • 8. insert


  • 必須有insert的許可權,才可以使用insert into ….. values….


  • 9. alter


  • 必須有alter的許可權,才可以使用alter table


  • alter table shop modify dealer char(15);


  • 10. alter routine


  • 必須具有alter routine的許可權,才可以使用{alter |drop} {procere|function}


  • mysql>grant alter routine on pyt.* to 『p1′@』 localhost 『;


  • mysql> drop procere pro_shop;


  • Query OK, 0 rows affected (0.00 sec)


  • mysql> revoke alter routine on pyt.* from 『p1′@』localhost』;


  • [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


  • mysql> drop procere pro_shop;


  • ERROR 1370 (42000): alter routine command denied to user 『p1′@』localhost』 for routine 『pyt.pro_shop』


  • 11. update


  • 必須有update的許可權,才可以使用update table


  • mysql> update shop set price=3.5 where article=0001 and dealer=』A';


  • 12. delete


  • 必須有delete的許可權,才可以使用delete from ….where….(刪除表中的記錄)


  • 13. drop


  • 必須有drop的許可權,才可以使用drop database db_name; drop table tab_name;


  • drop view vi_name; drop index in_name;


  • 14. show database


  • 通過show database只能看到你擁有的某些許可權的資料庫,除非你擁有全局SHOW DATABASES許可權。


  • 對於p1@localhost用戶來說,沒有對mysql資料庫的許可權,所以以此身份登陸查詢時,無法看到mysql資料庫:


  • mysql> show databases;


  • +——————–+


  • | Database |


  • +——————–+


  • | information_schema|


  • | pyt |


  • | test |


  • +——————–+


  • 15. show view


  • 必須擁有show view許可權,才能執行show create view。


  • mysql> grant show view on pyt.* to p1@localhost;


  • mysql> show create view v_shop;


  • 16. index


  • 必須擁有index許可權,才能執行[create |drop] index


  • mysql> grant index on pyt.* to p1@localhost;


  • mysql> create index ix_shop on shop(article);


  • mysql> drop index ix_shop on shop;


  • 17. excute


  • 執行存在的Functions,Proceres


  • mysql> call pro_shop1(0001,@a);


  • +———+


  • | article |


  • +———+


  • | 0001 |


  • | 0001 |


  • +———+


  • mysql> select @a;


  • +——+


  • | @a |


  • +——+


  • | 2 |


  • +——+


  • 18. lock tables


  • 必須擁有lock tables許可權,才可以使用lock tables


  • mysql> grant lock tables on pyt.* to p1@localhost;


  • mysql> lock tables a1 read;


  • mysql> unlock tables;


  • 19. references


  • 有了REFERENCES許可權,用戶就可以將其它表的一個欄位作為某一個表的外鍵約束。


  • 20. reload


  • 必須擁有reload許可權,才可以執行flush [tables | logs | privileges]


  • mysql> grant reload on pyt.* to p1@localhost;


  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


  • mysql> grant reload on *.* to 『p1′@』localhost』;


  • Query OK, 0 rows affected (0.00 sec)


  • mysql> flush tables;


  • 21. replication client


  • 擁有此許可權可以查詢master server、slave server狀態。


  • mysql> show master status;


  • ERROR 1227 (42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation


  • mysql> grant Replication client on *.* to p1@localhost;


  • 或:mysql> grant super on *.* to p1@localhost;


  • mysql> show master status;


  • +——————+———-+————–+——————+


  • | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |


  • +——————+———-+————–+——————+


  • | mysql-bin.000006 | 2111 | | |


  • +——————+———-+————–+——————+


  • mysql> show slave status;


  • 22. replication slave


  • 擁有此許可權可以查看從伺服器,從主伺服器讀取二進制日誌。


  • mysql> show slave hosts;


  • ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


  • mysql> show binlog events;


  • ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


  • mysql> grant replication slave on *.* to p1@localhost;


  • mysql> show slave hosts;


  • Empty set (0.00 sec)


  • mysql>show binlog events;


  • +—————+——-+—————-+———–+————-+————–+


  • | Log_name | Pos | Event_type | Server_id| End_log_pos|Info | +—————+——-+————–+———–+————-+—————+


  • | mysql-bin.000005 | 4 | Format_desc | 1 | 98 | Server ver: 5.0.77-log, Binlog ver: 4 | |mysql-bin.000005|98|Query|1|197|use `mysql`; create table a1(i int)engine=myisam|


  • ……………………………………


  • 23. Shutdown


  • 關閉MySQL:


  • [mysql@mydev ~]$ mysqladmin shutdown


  • 重新連接:


  • [mysql@mydev ~]$ mysql


  • ERROR 2002 (HY000): Can』t connect to local MySQL server through socket 『/tmp/mysql.sock』 (2)


  • [mysql@mydev ~]$ cd /u01/mysql/bin


  • [mysql@mydev bin]$ ./mysqld_safe &


  • [mysql@mydev bin]$ mysql


  • 24. grant option


  • 擁有grant option,就可以將自己擁有的許可權授予其他用戶(僅限於自己已經擁有的許可權)


  • mysql> grant Grant option on pyt.* to p1@localhost;


  • mysql> grant select on pyt.* to p2@localhost;


  • 25. file


  • 擁有file許可權才可以執行 select ..into outfile和load data infile…操作,但是不要把file, process, super許可權授予管理員以外的賬號,這樣存在嚴重的安全隱患。


  • mysql> grant file on *.* to p1@localhost;


  • mysql> load data infile 『/home/mysql/pet.txt』 into table pet;


  • 26. super


  • 這個許可權允許用戶終止任何查詢;修改全局變數的SET語句;使用CHANGE MASTER,PURGE MASTER LOGS。


  • mysql> grant super on *.* to p1@localhost;


  • mysql> purge master logs before 『mysql-bin.000006′;


  • 27. process


  • 通過這個許可權,用戶可以執行SHOW PROCESSLIST和KILL命令。默認情況下,每個用戶都可以執行SHOW PROCESSLIST命令,但是只能查詢本用戶的進程。


  • mysql> show processlist;


  • +—-+——+———–+——+———+——+——-+——————+


  • | Id | User | Host | db | Command | Time | State | Info |


  • +—-+——+———–+——+———+——+——-+——————+


  • | 12 | p1 | localhost | pyt | Query | 0 | NULL | show processlist |


  • +—-+——+———–+——+———+——+——-+——————+


  • 另外,


  • 管理許可權(如 super, process, file等)不能夠指定某個資料庫,on後面必須跟*.*


  • mysql> grant super on pyt.* to p1@localhost;


  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


  • mysql> grant super on *.* to p1@localhost;


  • Query OK, 0 rows affected (0.01 sec)

⑻ ORACLE資料庫中的許可權和角色

ORACLE資料庫中的許可權和角色

Oracle資料庫是一種大型關系型的資料庫,我們知道當使用一個資料庫時,僅僅能夠控制哪些人可以訪問資料庫,哪些人不能訪問資料庫是無法滿足資料庫訪問控制的。DBA需要通過一種機制來限制用戶可以做什麼,不能做什麼,這在Oracle中可以通過為用戶設置許可權來實現。許可權就是用戶可以執行某種操作的權利。而角色是為了方便DBA管理許可權而引入的一個概念,它實際上是一個命名的許可權集合。

1 許可權

Oracle資料庫有兩種途徑獲得許可權,它們分別為:

① DBA直接向用戶授予許可權。

② DBA將許可權授予角色(一個命名的包含多個許可權的集合),然後再將角色授予一個或多個用戶。

使用角色能夠更加方便和高效地對許可權進行管理,所以DBA應該習慣於使用角色向用戶進行授予許可權,而不是直接向用戶授予許可權。

Oracle中的許可權可以分為兩類:

•系統許可權

•對象許可權

1.1 系統許可權

系統許可權是在資料庫中執行某種操作,或者針對某一類的對象執行某種操作的權利。例如,在資料庫中創建表空間的權利,或者在任何模式中創建表的權利,這些都屬於系統許可權。在Oracle9i中一共提供了60多種許可權。

系統許可權的權利很大,通常情況下:

① 只有DBA才應當擁有alter database系統許可權,該許可權允許用戶對資料庫物理結構和可用性進行修改。

② 應用程序開發者一般應該擁有Create Table、Create View和Create Type等系統許可權,用於創建支持前端的資料庫模式對象。

③ 普通用戶一般只具有Create session系統許可權(可以通過Connection角色獲得),只有Create Session系統許可權的用戶才能連接到資料庫

④ 只有具有Grant Any PRivilege系統許可權用戶,或者獲取了具有With Admin Option選項的系統許可權的用戶,才能夠成為其它用戶授予許可權。

1.2對象許可權

對象許可權是針對某個特定的模式對象執行操作的權利。只能針對模式對象來設置和管理對象許可權。

對於模式對象:表、視圖、序列、存儲過程、存儲函數、包都可以對象設置許可權。不同類型模式對象具有不同的對象許可權。比如,表、視圖等對象具有查詢(Select)、修改(Update)、刪除(Delete)等對象許可權,而存儲過程、存儲函數等對象則具有執行(Execute)等對象許可權。

但是並不是所有的模式對象都可以設置對象許可權。比如簇、索引、觸發器以及資料庫鏈接等模式就不具有對象許可權。這些模式對象的訪問控制是通過相應的.系統許可權來實現的,比如,要對索引進行修改,必須擁有Alter Any Index系統許可權。

用戶自動擁有他的模式中所有對象的全部對象許可權,他可以將這些對象許可權授予其他的用戶或角色。比如,Test1用戶創建了一個表Table1,在沒有授權的情況下,用戶Test2不能查詢、修改、刪除這個表。如果Test1將ETP表的Select對象許可權授予了Test2,則該用戶就可以查詢Table1表了。如果在為其它用戶授予對象許可權時用了With Grant Option選項,被授予許可權的用戶還可以將這個許可權在授予其他用戶。

2 角色

2.1角色的概念

角色就是多個相關許可權的命名集合。通過角色來進行對用戶授予許可權,可以大大簡化DBA的工作量。比如,處於統一部門中的30多個用戶都需要訪問資料庫中的一系列表,DBA可以將這些表的中合適的對象許可權授予一個角色,然後在把這個角色授予這些用戶,這樣進行操作要比為沒有用戶進行授權要便捷多了,而且要對這些用戶的許可權進行統一修改,只需要修改角色的許可權即可。

2.2角色的優點

通過角色為用戶授予許可權,而不是直接向各個用戶授權,具有以下優點:

•簡化許可權管理 DBA將用戶群分類,然後為每一類用戶創建角色,並將該角色授予這類用戶所需要的許可權,最後在將改角色授予該類中的各個用戶。這樣不僅簡化了授權操作,而且當這類用戶的許可權需求發生改變時,只需要把角色的許可權進行改動,而不必修改每一位用戶的許可權。

•動態許可權管理 角色可以被禁用或激活。當角色被禁止使用時,擁有該角色的用戶不再擁有授予改角色的許可權了。這樣就可以對多個用戶的許可權進行動態控制了。

•靈活的編程能力 角色是存儲在數據字典中的,並且可以為角色設置口令。這樣就能夠在應用程序中對角色進行控制。比如禁用或者激活等操作。

下面以Oracle9i為例,給出具體的實現用戶授權:

(1)設定各種角色,及其許可權

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)創建用戶

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授權

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)設定用戶預設的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注冊過程

CONNECT xiaoli/xiaoli@oracle

此時用戶只有其預設角色的許可權。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

----操作成功後,xiaoli擁有checkerrole的許可權。

----這里的角色和口令是固定的,在應用系統中可以由應用管理人員自行設置則更為方便安全

;
熱點內容
超凡先鋒配置不行怎麼辦 發布:2025-05-15 23:27:54 瀏覽:530
win7取消加密 發布:2025-05-15 23:26:37 瀏覽:470
不用internet打開ftp 發布:2025-05-15 23:06:00 瀏覽:153
sql字元串取數字 發布:2025-05-15 22:57:45 瀏覽:124
推薦編程課 發布:2025-05-15 22:34:12 瀏覽:618
表拒絕訪問 發布:2025-05-15 22:29:37 瀏覽:978
電腦怎樣解壓文件 發布:2025-05-15 22:25:32 瀏覽:439
dns伺服器怎麼看 發布:2025-05-15 22:17:27 瀏覽:151
3dm的壓縮包 發布:2025-05-15 22:09:23 瀏覽:662
和存儲字長 發布:2025-05-15 21:54:09 瀏覽:515