帳號, 密碼, 權限與角色(轉)

摘要:帳號, 密碼, 權限與角色(轉)

 

1. 新增帳號CREATE USER 使用者名稱  IDENTIFIED BY 密碼;
2. 權限設定GRANT 權限 ON 資料庫物件 TO 使用者名稱;
                      GRANT 角色 TO 使用者名稱
3. 取消權限: REVOKE 權限 ON 資料庫物件 FROM 使用者名稱;
4. 新增角色: CREATE ROLE 角色名稱 [ NOT IDENTIFIED | IDENTIFIED { BY 密碼 | USING [ 鋼要 .] PACKAGE | EXTERNALLY | GLOBALLY } ] ;
5. 取消角色: DROP ROLE 角色名稱
6. 更改密碼ALTER USER  使用者名稱 IDENTIFIED BY 密碼;
7. 強制變更密碼ALTER USER 使用者名稱 PASSWORD EXPIRE;
8. 鎖住現有的使用者ALTER USER 使用者名稱 ACCOUNT LOCK;
9. 解鎖現有的使用者ALTER USER 使用者名稱 ACCOUNT UNLOCK;
10. 刪除現有的使用者DROP USER 使用者名稱;

GRANT ALTER   ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT DELETE ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT INDEX   ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT INSERT ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT SELECT ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT UPDATE ON  TABLE_NAME TO APPS WITH GRANT OPTION;
GRANT REFERENCES ON  TABLE_NAME TO APPS WITH GRANT OPTION;

1. 新增帳號: 

SQL> CREATE USER elvismeng  IDENTIFIED BY elvismeng;

如以此帳號立即登入, 系統會告知下列錯誤:


C:\Documents and Settings\elvismeng>sqlplus elvismeng/elvismeng
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 26 10:23:04 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-01045: 使用者 ELVISMENG 缺乏 CREATE SESSION 權限; 登入被拒


系統告知使用者elvismeng並沒有CREATE SESSION的權限 (Privilege), 所以無法登入.

2. 建立權限

我們可透過IE瀏覽器來設定使用者elvismeng的權限:

 

我們也可以Command Line的方式設定權限:

SQL> GRANT CREATE SESSION TO elvismeng;
順利授權.


接下來, 我們驗證帳號elvismeng是否有權限登入到資料庫:

SQL> connect elvismeng/elvismeng;
已連線.


3 取消權限

使用者權限亦可依需求取消:

SQL> REVOKE CREATE SESSION FROM elvismeng;
順利撤銷.


4. 角色 (Role)

建立角色:

SQL> CREATE ROLE TEST_ROLE;
已建立角色.

SQL> GRANT CREATE SESSION TO TEST_ROLE;
順利授權.

SQL> CREATE USER TEST IDENTIFIED BY TEST;
已建立使用者.

SQL> GRANT TEST_ROLE TO TEST;
順利授權.

取消角色:

SQL> DROP ROLE TEST_ROLE;

已刪除角色.

5. 更改密碼

SQL> connect elvismeng/elvismeng
已連線.

SQL> ALTER USER elvismeng IDENTIFIED BY elvismeng01;

已更改使用者.

SQL> connect elvismeng/elvismeng
ERROR:
ORA-01017: 使用者名稱/密碼無效; 無法登入

警告: 您已不再與 ORACLE 相連

SQL> connect elvismeng/elvismeng01
已連線. 

6. 強制變更密碼

C:\Documents and Settings\elvismeng>SQLPLUS

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 3月 26 16:09:27 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

輸入使用者名稱:  SYSTEM
輸入密碼:

連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> ALTER USER elvismeng PASSWORD EXPIRE
已更改使用者.

SQL> GRANT CREATE SESSION TO elvismeng;
順利授權.

SQL> DISCONNECT
已切斷與 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 的連線
SQL> CONNECT elvismeng/elvismeng01
ERROR:
ORA-28001: 密碼已經屆滿

為 elvismeng 變更密碼
新密碼:
重新輸入新密碼:
變更密碼
已連線.
SQL>

7. 鎖住 / 解除現有的使用者

SQL> ALTER USER elvismeng ACCOUNT LOCK;

已更改使用者.

SQL> GRANT CREATE SESSION TO elvismeng;
順利授權.

SQL> DISCONNECT
已切斷與 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 的連線
SQL> CONNECT elvismeng/elvismeng
ERROR:
ORA-28000: 帳戶已被鎖定

 

SQL> DISCONNECT

SQL> CONNECT SYSTEM/SYSTEM
已連線.

SQL> ALTER USER elvismeng ACCOUNT UNLOCK;
已更改使用者.

SQL> CONNECT elvismeng/elvismeng
已連線.
SQL>

8. 刪除現有的使用者

SQL> DROP USER elvismeng;
已刪除使用者.

SQL> connect elvismeng/elvismeng;
ERROR:
ORA-01017: 使用者名稱/密碼無效; 無法登入
警告: 您已不再與 ORACLE 相連