戶管理
sql>create user testuser1 identified by kxf_001;
sql>grant connect,create table to testuser1; //賦予connect和create table 給testuser1
sql>conn testuser1/kxf_001
sql>create table test1(id int)tablespace users; //'USERS'表空間無權限
1、用戶和安全性:
Account locking賬號鎖定、[System]用戶指定默認表空間、[System]臨時表空間(支持排序)、Tablespace quotas 使用資源的表空間、Resource limits資源限制、Role privileges 角色權限(命了名的權限的集合)、Direct privileges直接權限、Authentication mechanism DB/OS/Global審核
sql>conn sys/admin1 as sysdba
sql>alter user testuser1
account lock; //賬號鎖定
sql>conn testuser1/kxf_001; //賬號已經鎖定,無法連接。
sql>conn sys/admin1 as sysdba
sql>alter user testuser1
account unlock; //賬號解鎖
sql>alter user testuser1
quota 10m on users; //使用在users表空間的testuser1的空間限額
2、Database Schema 數據庫方案(數據對象的集合)
用戶username和schema是一一對應的關系,經常交互使用。schema是一個owner,是數據對象的所有者。
Schema Objects: Tables、Triggers、Constraints、Indexes、Views、Sequences、Stored program units、Synonyms、User-defined data types、Databaselinks.
3、創(chuàng)建Users的列表:
a.定義用戶需要存儲對象的表空間;
b.決定每個表空間的限額;
c.設定一個默認表空間和臨時表空間。
d.創(chuàng)建一個用戶。
e.為用戶賦予權限和角色(Grant)。
sql>conn kong/kxf_001
sql>create table test1(id int); //不指定放在哪個表空間下,就建立在默認default表空間下。
sql>conn sys/admin1 as sysdba
sql>alter user kong profile default;
sql>desc dba_users
sql>select username,default_tablespace from dba_users where username='KONG';
4、創(chuàng)建一個新用戶:DB:口令驗證\OS:extenal外部驗證\Global安全服務器)
(1)DataBase口令驗證(設置初始口令):
CREATE USER aaron IDENTITFIED BY soccer
DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;
sql>create user testuser2
identified by kxf_001
password expire; //口令到期
sql>grant connect to testuser2; //為新創(chuàng)建的用戶testuser2 授權
sql>conn testuser2/kxf_001 //口令到期,無法連接到Oracle
sql>conn sys/admin1 as sysdba
sql>alter user testuser2
default tablespace users
temporary tablespace temp
quota 10m on users1
sql>show parmeter default
sql>alter database default temporary tablespace temp; //不指定臨時表空間則用default temporary tablespace作為臨時表空間
sql>alter database defaut tablespace users;
(2)OS審核 Create a New User 創(chuàng)建一個新用戶(添加用戶通過映射關系將OS用戶加到Database中,集成的操作模式)其中,OS_AUTHENT_PREFIX OS審核前綴:OPS$(在dabatase操作時加上)
CREATE USER aaron IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;
sql>show parameter os //os_authent_prefix value:OPS$
sql>create user ops$kong
identified externally //口令是由操作系統(tǒng)來進行驗證。這種模式將來Oracle訪問時不需要提供用戶名和口令,用操作系統(tǒng)來直接對應到Oracle用戶id,如果有就成功驗證。
default tablespace users
temporary tablespace temp
quota 10m on users; //10m的限額
5、改變用戶的限額:
sql>alter user testuser2
quota 5m on users;
【注意】有兩類表空間中是不能指定限額的:temporary tablespace臨時表空間、undo tablespace 回滾表空間
sql>alter user testuser2
quota 10m on temp; //可以指定但不會生效,因此在臨時表空間中不需要授予限額
sql>alter user testuser2
quota 10m on undotbs //錯,無法在回滾表空間上授予限額
sql>select * from dba_tables
where owner='KONG';
sql>alter user kong quota 0 on users; //修改該用戶,沒有新的空間分配給它,并非是指系統(tǒng)會將用戶名下的數據對象從當前表空間搬到另外的表空間中去
sql>conn testuser2/kxf_001;//此時密碼已經過期,改變密碼
另一個窗口:
sql>drop user testuser2; //無法刪除當前正在使用連接的用戶
sql>drop user testuser1; //必須指定CASCADE來刪除testuser1;
sql>drop user testuser1 cascade //刪除用戶的相關信息和他名下的數據對象
在原來窗口:
sql>disconnect //斷開testuser2
sql>drop user testuser2; //可以直接刪除,因不具有數據對象因此可以不帶cascade。
6、如何獲取用戶信息:
DBA_USERS\DBA_TS_QUOTAS
sql>desc dba_users; //USERNAME\USER_ID\PASSWORD\ACCOUNT_STATUS\LOCK_DATE\EXPIRY_DATE\DEFAULT_TABLESPACE\TEMPORARY_TABLESPACE\CREATED\PROFILE\INITIAL_RSRC_CONSUMER_GROUP\EXTERNAL_NAME
sql>select * from dba_users; //當前用戶的系統(tǒng)信息,其中密碼PASSWORD是加密的,無法解密
sql>desc dba_ts_quotas; //每個用戶在哪個表空間中有什么限額。
sql>select * from dba_ts_quotas where username='KONG'; //沒有選定行(KONG用戶沒有空間限額)
sql>alter user kong quota 10 on users; //給users表空間10M的限額
sql>select * from dba_ts_quotas where username='KONG'; // 查詢kong用戶的空間限額,顯示在哪個表空間
sql>alter user kong quota 10 on indx; //給indx表空間10M的限額
sql>select * from dba_ts_quotas where username='KONG';// 查詢kong用戶的空間限額,顯示在哪個表空間