SQL*Plus的基本操作
SQL*Plus的啟動與關閉
僅啟動SQL*Plus不登入到資料庫: sqlplus /nolog 以預設管理員登陸: sqlplus / as sysdba 以資料庫賬戶登入:
$ sqlplus
$ sqlplus username
$ sqlplus [email protected]
$ sqlplus [email protected]//host/sid
$ sqlplus [email protected]//host:port/sid
**$ sqlplus username/password**
$ sqlplus username/[email protected]
$ sqlplus username/[email protected]//host/sid
$ sqlplus username/[email protected]//host:port/sid
$ sqlplus username as sysdba
$ sqlplus [email protected] as sysdba
$ sqlplus [email protected]//host/sid as sysdba
$ sqlplus [email protected]//host:port/sid as sysdba
$ sqlplus username/password as sysdba
$ sqlplus username/ [email protected] as sysdba
$ sqlplus username/[email protected]//host/sid as sysdba
$ sqlplus username/[email protected]//host:port/sid as sysdba
登入資料庫並執行 SQL*Plus 指令碼檔案
$ sqlplus username/[email protected] @/home/oracle/createdb
$ sqlplus username/[email protected] @/home/oracle/createdb.sql
$ sqlplus username/ [email protected] @/home/oracle/createdb.sql 10 10 30 40
建立表空間和使用者
sqlplus / as sysdba以系統管理員身份登陸,出現SQL>,接下來檢視當前資料庫檔案都存放在哪裡:select name from v$datafile;
現在開始建立資料庫表空間:
格式為 create tablespace 表空間名 datafile ‘對應的檔名’ size 大小;
eg:
create tablespace yang datafile '/oracle/oradata/orcl/yang.dbf' size 3000m;
接下來建立使用者: create user 使用者名稱 identified by 密碼 default tablespace 使用者預設使用哪一個表空間;
eg.
create user yanglei identified by yang123 default tablespace yang;
最後,修改使用者許可權,參見 授予系統許可權。
更改使用者
修改密碼:
ALTER USER USERMAN IDENTIFIED BY NewPassword;
設定使用者USERMAN的密碼立即過期,它在下一次登入時必須修改密碼:
ALTER USER USERMAN PASSWORD EXPIRE;
鎖定使用者USERMAN,使其無法登入到資料庫:
ALTER USER USERMAN ACCOUNT LOCK;
解除對使用者USERMAN的鎖定:
ALTER USER USERMAN ACCOUNT UNLOCK;
刪除使用者
DROP USER語句也可以刪除指定的使用者。 DROP USER 使用者名稱 [CASCADE];
查詢使用者
1.檢視所有使用者:
select * from dba_users;
select * from all_users;
select * from user_users;
2.檢視使用者或角色系統許可權(直接賦值給使用者或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs; (檢視當前使用者所擁有的許可權)
3.檢視角色(只能檢視登陸使用者擁有的角色)所包含的許可權
sql>select * from role_sys_privs;
4.檢視使用者物件許可權:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.檢視所有角色:
select * from dba_roles;
6.檢視使用者或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.檢視哪些使用者有sysdba或sysoper系統許可權(查詢時需要相應許可權)
select * from V$PWFILE_USERS
8.SqlPlus中檢視一個使用者所擁有許可權
SQL>select * from dba_sys_privs where grantee='username'; 其中的username即使用者名稱要大寫才行。
比如: SQL>select * from dba_sys_privs where grantee='TOM';
9、Oracle刪除指定使用者所有表的方法
select 'Drop table '||table_name||';' from all_tables where owner='要刪除的使用者名稱(注意要大寫)';
10、刪除使用者
drop user user_name cascade; 如:drop user SMCHANNEL CASCADE
11、獲取當前使用者下所有的表:
select table_name from user_tables;
12、刪除某使用者下所有的表資料:
select 'truncate table ' || table_name from user_tables;
授予系統許可權
grant create session to lisi; //授予lisi使用者建立session的許可權,即登陸許可權 (必須授予,登入使用)
grant create table to lisi; //授予lisi使用者建立表的許可權
grant unlimited tablespace to lisi; //授予lisi使用者使用表空間的許可權(想建立表,必須具有使用表空間許可權)
grant create session public; //把建立session的許可權,授予所有的使用者;
——撤銷許可權
revoke create session from lisi; //撤銷lisi使用者建立session的許可權,即登陸許可權
revoke unlimited tablespace from lisi; //撤銷lisi使用者使用表空間的許可權
revoke create table from lisi; //撤銷lisi使用者建立表的許可權
授予物件許可權
oracle中物件是彼此分開的,預設情況下,不能相互訪問資料,但是可以通過授予物件許可權的方式,讓不同使用者之間的相互訪問; 我們使用lisi使用者建立的表lisitable ,然後在沒有給wangwu授權的情況下,讓wangwu查詢lisitable;(沒有許可權) 我們讓lisi使用者把許可權授予wangwu使用者,同時也可以撤銷授予其他使用者的許可權,授予的許可權還可以具體到表的某一列上; 這時我們使用wangwu使用者來訪問lisi使用者的lisitable; ——許可權傳遞,一般來說許可權之間是不可以傳遞的,但是加上admin option之後就能傳遞: lisi也具備授予wangwu,alter any table的許可權;
建立角色
Create role 角色名[not identified | identified {by 口令|externally|globally}];
給角色授權
Grant {All|物件許可權1 [,物件許可權2…] }[列1[,列2]…] On{[模式名.]物件名|directory 目錄名}to角色 [with grant option];
刪除角色
drop role 角色;
修改表:
(1)修改表的名稱
alter table 表名 rename to 新的名字;
demo:
alter table ta1 rename to ta0;
(2)新增一個新欄位
alter table 表名 add 新欄位 欄位的型別;
demo:
alter table ta0 add unames varchar(20);
(3)修改欄位:
alter table 表名 change 舊得欄位 新的欄位 欄位的資料型別;
alter table ta0 change unames uname varchar(20);
(4)修改欄位的型別:
alter table 表名 modify 欄位 欄位的新型別
demo:
alter table ta0 modify uname int;
================================================================ 參考來源:csdn部落格,部落格園。