boss5518831534 发表于 2013-1-29 14:41:33

Oracle数据库权限管理常用的SQL语句

1、Oracle9g中的三个默认用户
   用户名                 密码
   sys                  change_on_install     
   system               manager
   scott                 tiger
2、用户登录
1)开启监听
   C:\Users\Administrator>lsnrctl start
2)开启数据库的实例
   C:\Users\Administrator>oradim -starup -sid orcl
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
3、系统权限
   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无限制使用表空间的权限
4、对象权限
   grant select on mytable to lisi;              //授予lisi查看mytable表的权限
   grant insert on mytable to lisi;              //授予lisi在mytable表中插入数据的权限
   grant all on mytable to lisi;                //授予lisi操作mytable表所有的权限
   revoke select on mytable from lisi;            //撤销lisi查看mytable表的权限
   revoke insert on mytable from lisi;            //撤销lisi在mytable表插入数据的权限
   revoke all on mytable from lisi;              //撤销lisi操作mytable表的所有权限 
5、给所有用户授予权限
   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;        //撤销用户无限制使用表空间的权限
6、使用数字字典
   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;                      //查看当前用户信息 !
7、对象权限可以控制到列
   grant update(name) on mytable to lisi;        //授予lisi用户更新mytable表name列的权限
   grant insert(id) on mytable to lisi;           //授予lisi用户在mytable表id列插入数据的权限
   select*from user_col_privs;                  //查看当前用户拥有哪些列的对象权限
注意:查询和删除不能控制到列。                   //ddl  dml  dcl
8、系统权限的传递
   grant alter any table to lisi with admin option;       //超级管理员授予lisi修改任意表的管理权限
9、对象权限的传递
   grant select on  A  to lisi with grant option;         //把A表的查看权限授予给lisi   
10、设置命令行屏幕的宽度
set linesize 400                                //设置行的宽度为400
11、角色
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_comments:table_name,table_type,comments
相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。
15、获取字段注释:
select * from user_col_comments
user_col_comments:table_name,column_name,comments
   相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列。
 
 
转载于:http://my.oschina.net/u/273709/blog/86116
页: [1]
查看完整版本: Oracle数据库权限管理常用的SQL语句