3個預設的帳戶:sys change_on_install 網路系統管理員[as sysdba]system manage 本地管理員scott tiger 超級使用者
建立使用者、授權和撤消許可權登入oracle:sqlplus / as sysdba啟動監聽:lsnrctl start啟動資料庫的執行個體:oradim -startup -sid orclSQL> show user;//顯示目前使用者SQL> create user lisi identified by lisi;//建立一個使用者SQL> grant create session to lisi;//給使用者授予會話許可權SQL> sqlplus lisi/lisi//用建立的使用者進行登入SQL> grant unlimited tablespace to lisi//給使用者授予資料表空間許可權SQL> grant create table to lisi;//給使用者建立表的許可權SQL> create table mytable (id int);//建立表SQL> insert into mytable values (1);//插入資料SQL> select * from mytable;//查詢資料SQL> drop table mytable//刪除表SQL> revoke create table from lisi; //撤消對錶操作的許可權SQL> select * from user_sys_privs; //查詢目前使用者擁有哪些許可權SQL>revoke unlimited tablespace from lisi;//撤消對錶空間操作的許可權丟失管理員密碼怎麼辦?用sys使用者進行修改sqlplus / as sysdbaalter user scott Identified by tiger;oracle 9更改口令檔案把原有口令檔案刪掉E:\oracle\ora92\database\pwdora9i.ora;orapwd file=E:\oracle\ora92\database\pwdora9i.ora password=sys entries=10;select * from v$pwfile_users;oracle 10+更改口令檔案把原有口令檔案刪掉E:\oracle\ora92\database\PWDorcl.ora;orapwd file=E:\oracle\ora92\database\PWDorcl.ora password=sys entries=10;select * from v$pwfile_users;角色管理角色就是一個許可權的集合。show user; 顯示目前使用者create role myrole;建立一個角色grant create session to myrloe;給角色授予session許可權grant create table to myrole;給角色授予表操作許可權create user zhangsan identified by zhangesan;建立一個使用者grant myrole to zhangsan;把角色授予給使用者sqlplus zhangsan/zhangsan使用者登入drop role myrole;刪除角色grant unlimited tablespace to myrole;這個許可權比較大,不能通過角色授權,只能授權給使用者許可權的傳遞
show user:查看目前使用者select * from user_sys_privs 查看目前使用者的系統許可權grant alter any table to lisi; sys可以授權給李四grant alter any table to wangwu;但是李四不能授權給王五grant alter any table to lisi with admin option; //現在李四可以授權給王五了grant alter any table to wangwu with admin option; //讓王五也可以傳遞許可權create table A(id int);//在sys中建立一個表Agrant select On A to lisi;//把表操作許可權傳遞給李四,但李四不能傳遞許可權grant select On A to lisi with grant option;//現在李四可以傳遞許可權了grant select on sys.A to wangwu with grant option;;//讓王五也可以傳遞許可權。系統許可權與對象許可權SQL> create user wanwu identified by wangwuSQL> grant create session to wangwu;SQL> sqlplus wangwu/wangwuSQL> grant create table,unlimited tablespace to wangwu;SQL> create table mytab(id int);SQL> insert into mytab values(2);用lisi訪問wangwu 的表,不能訪問SQL> select * from wangwu.mytab;用sys使用者訪問wangwu 的表,可以,要執行兩次SQL> select * from wangwu.mytab;SQL> select * from wangwu.mytab;讓lisi可以訪問wangwu的表SQL> grant select on mytab to lisi;//把查詢許可權授予李四SQL> grant insert on mytab to lisi;//把插入許可權授予李四SQL> commit;//提交後才顯示資料SQL> grant all on mytab ot lisi;// 把動作表的最大許可權授予李四SQL> revoke all on mytab from lisi; // 撤消李四對錶操作的許可權SQL> disconnSQL> conn wangwu/wangwuSQL> commit: //每次對錶操作後要提交SQL> alter table mytab add name varchar(50);SQL> insert into mytab values(1,'zhang');SQL> insert into mytab values(2,'li');SQL> insert into mytab values(3,'wang');SQL> commit;SQL> grant update(name) on mytab to lisi; //讓李四隻有更新name列的許可權SQL> grant insert(id) on mytab to lisi;//讓李四隻有插入id列的許可權SQL> update wangwu.mytab set name='lihuoming' where id=1;帳戶管理細節1.三個常用的系統使用者:scott(一個資料庫的普通使用者)conn scott/tigermanager(資料庫管理員)conn system/managersys(資料庫物件的擁有者許可權最高)conn sys/change_on _install as sysdba建立使用者的完整格式:create user 使用者名稱 identified by 密碼default tableSpace 資料表空間Temporary TableSpace 資料表空間Quota 整數[ K | M | Limited | unlimited ] on 資料表空間例子:create user abcidentified by 123default tablespace UsersTemporary tablespace TempQuota 50M on Users限制使用者:使用者加鎖 --alter user 使用者名稱 account lock使用者解鎖 --alter user 使用者名稱 account unlock使用者口令即刻失效 -- alter user 使用者名稱 password expire刪除使用者:drop user 使用者名稱 [CasCade]CasCade表示刪除使用者所有對象樣本:drop user abc cascade;