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

阅读更多

1、 Oracle9g中的三个默认用户

   用户名                 密码

   sys                  change_on_install     [as sysdba]

   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;                          // 查看你能管理的所有用户!

   s elect * 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

你可能感兴趣的:(oracle,权限,sql,select)