Oracle數據庫權限管理經常使用的SQL語句

一、Oracle9g中的三個默認用戶 sql

   用戶名                 密碼 數據庫

   sys                  change_on_install     [as sysdba] windows

   system               manager session

   scott                 tiger ide

二、用戶登陸 spa

1)開啓監聽 命令行

   C:\Users\Administrator>lsnrctl start 對象

2)開啓數據庫的實例 ci

   C:\Users\Administrator>oradim -starup -sid orcl it

3)超級管理員登陸

   C:\Users\Administrator>sqlplus / as sysdba

4)建立普通用戶並登陸

   create user lisi identified by lisi;            //建立一個用戶名爲lisi,密碼爲lisi的用戶

   default tablespace users                        //默認表空間爲users,用來存放數據

   temporary tablespace temp                       //臨時表空間temp,等於windows臨時文件夾

   quota 50M on users                              //限定用戶只能使用users表空間爲50M

   C:\Users\Administrator>sqlplus lisi/lisi        //lisi用戶登陸

5)限制用戶

   用戶加鎖:alter User用戶名Account Lock

   用戶解鎖:alter User用戶名Account Unlock

   用戶口令既刻失效:alter User 用戶名Password Expire

6)刪除用戶

   Drop user 用戶名          用戶下面沒有對象

   Drop User 用戶名 cascade  其中CasCade表示刪除用戶全部對象

7)斷開正在鏈接的用戶

   SQL>disconn

三、系統權限

   grant create session to lisi;                 //授予lisi會話的權限

   grant create table to lisi;                   //授予lisi建立表的權限

   grant unlinited tablespace to lisi;            //授予lisi無限制使用表空間的權限   

   revoke create session from lisi;             //撤銷lisi會話的權限

   revoke create table from lisi;               //撤銷lisi建立表的權限

   revoke unlimited tablespace to lisi;          //撤銷lisi無限制使用表空間的權限

四、對象權限

   grant select on mytable to lisi;              //授予lisi查看mytable表的權限

   grant insert on mytable to lisi;              //授予lisimytable表中插入數據的權限

   grant all on mytable to lisi;                //授予lisi操做mytable表全部的權限

   revoke select on mytable from lisi;            //撤銷lisi查看mytable表的權限

   revoke insert on mytable from lisi;            //撤銷lisimytable表插入數據的權限

   revoke all on mytable from lisi;              //撤銷lisi操做mytable表的全部權限 

五、給全部用戶授予權限

   grant create any table to public;              //把建立表的權限授予給全部用戶

   grant create session to public;               //把會話的權限授予給全部的用戶

   grant unlinited tablespace to public;          //把無限之使用表空間的權限授予給全部的用戶

   grant select on mytable to public;             //把查看mytable表的權限授予給全部用戶 

   revoke create any table from public;           //撤銷全部用戶建立表的權限

   revoke create session from public;            //撤銷多有用戶的會話權限

   revoke unlinited tablespace from public;        //撤銷用戶無限制使用表空間的權限

六、使用數字字典

   select*from user_sys_privs;                 //查看當前用戶擁有哪些系統權限

   select*from user_tab_privs;                 //查看當前用戶擁有哪些對象權限

   select * from dba_users;                       //查看數據庫裏面全部用戶,前dba權限的賬號,sys,system

   select * from all_users;                         //查看你能管理的全部用戶!

   select * from user_users;                      //查看當前用戶信息 !

七、對象權限能夠控制到列

   grant update(name) on mytable to lisi;        //授予lisi用戶更新mytablename列的權限

   grant insert(id) on mytable to lisi;           //授予lisi用戶在mytableid列插入數據的權限

   select*from user_col_privs;                  //查看當前用戶擁有哪些列的對象權限

注意:查詢和刪除不能控制到列。                   //ddl  dml  dcl

八、系統權限的傳遞

   grant alter any table to lisi with admin option;       //超級管理員授予lisi修改任意表的管理權限

九、對象權限的傳遞

   grant select on  A  to lisi with grant option;         //A表的查看權限授予給lisi   

10、設置命令行屏幕的寬度

set linesize 400                                //設置行的寬度爲400

十一、角色

create role myrole;                           //建立角色

grant create session to myrole;               //授予會話權限給角色

grant create table to myrole;                 //授予建立表權限給角色

drop role myrole;                            //刪除角色

Create table

Create any table

Alter any table

Drop any table

注意:有些系統權限沒法直接賦予角色

Grant unlinited tablespace to myrole;

Alter table

Drop table

表是屬於某一個用戶的,而角色不屬於任一用戶的,是共同擁有的。

12、獲取表:

select table_name from user_tables;                //當前用戶的表       

select table_name from all_tables;                 //全部用戶的表   

select table_name from dba_tables;                //包括系統表

select table_name from dba_tables where owner='用戶名'

user_tables

table_name,tablespace_name,last_analyzed

dba_tables

ower,table_name,tablespace_name,last_analyzed

all_tables

ower,table_name,tablespace_name,last_analyzed

all_objects

ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status

13、獲取表字段:

select * from user_tab_columns where Table_Name='用戶表';

select * from all_tab_columns where Table_Name='用戶表';

select * from dba_tab_columns where Table_Name='用戶表';

user_tab_columns

table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id

all_tab_columns 

ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id

dba_tab_columns

ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id

14、獲取表註釋:

select * from user_tab_comments

user_tab_commentstable_name,table_type,comments

相應的還有dba_tab_commentsall_tab_comments,這兩個比user_tab_comments多了ower列。

15、獲取字段註釋:

select * from user_col_comments

user_col_commentstable_name,column_name,comments

相應的還有dba_col_commentsall_col_comments,這兩個比user_col_comments多了ower列。

相關文章
相關標籤/搜索