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列。

相关文章
相关标签/搜索