一、系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
SQL> select * from role_sys_privs;
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
对于DBA管理用户:授予connect,resource, dba权限。
二、系统特权管理与控制
ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。
ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。
1、授予系统特权
(1) SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
(2) SQL>GRANT CREATE USER,ALTER USER,DROP USER
>TO jxzy_new
>WITH ADMIN OPTION;
2、回收系统特权
SQL>REVOKE CREATE USER,ALTER USER,DROP USER
>FROM jxzy_new
//但没有级联回收功能
3、显示已被授予的系统特权(某用户的系统级特权)
SQL>select * from sys.dba_sys_privs
(2) SQL>GRANT CREATE USER,ALTER USER,DROP USER
>WITH ADMIN OPTION;
2、回收系统特权
SQL>REVOKE CREATE USER,ALTER USER,DROP USER
>FROM jxzy_new
//但没有级联回收功能
3、显示已被授予的系统特权(某用户的系统级特权)
SQL>select * from
4
、删除用户:SQL> drop user 用户名 cascade;
//加上cascade则将用户连同其创建的东西全部删除
5、将表的操作权限授予全体用户:
SQL> grant all on product to public;
// public表示是所有的用户,这里的all权限不包括drop。
[ 实体权限数据字典]:
SQL> select owner, table_name from all_tables; // 用户可以查询的表
SQL> select table_name from user_tables;
// 用户创建的表
SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表(被授权的)
SQL> select grantee, owner, table_name, privilege from user_tab_privs;
// 授出权限的表(授出的权限)
SQL> create table stud02.employee
as
select * from scott.emp;
五、监视用户:
1、查询用户会话信息:
SQL> select username, sid, serial#, machine from v$session;
6、 DBA用户可以操作全体用户的任意基表(无需授权,包括删除):
DBA用户:
SQL> Create table stud02.product(
id number(10),
name varchar2(20));
SQL> drop table stud02.emp;
三、修改用户:
1、修改口令字:
SQL>Alter user acc01 identified by "12345";
1、修改口令字:
SQL>Alter user acc01 identified by "12345";
2、修改用户缺省表空间:
SQL> Alter user acc01 default tablespace users;
SQL> Alter user acc01 default tablespace users;
3、修改用户临时表空间
SQL> Alter user acc01 temporary tablespace temp_data;
SQL> Alter user acc01 temporary tablespace temp_data;
4、强制用户修改口令字:
SQL> Alter user acc01 password expire;
SQL> Alter user acc01 password expire;
5、将用户加锁
SQL> Alter user acc01 account lock; // 加锁
SQL> Alter user acc01 account unlock; // 解锁
SQL> Alter user acc01 account lock;
SQL> Alter user acc01 account unlock;
四、删除用户
SQL>drop user 用户名; //用户没有建任何实体
SQL> drop user 用户名 CASCADE; // 将用户及其所建实体全部删除
SQL>drop user 用户名;
SQL> drop user 用户名 CASCADE;
*1. 当前正连接的用户不得删除。
五、监视用户:
1、查询用户会话信息:
SQL> select username, sid, serial#, machine from v$session;
2、删除用户会话信息:
SQL> Alter system kill session 'sid, serial#';
SQL> Alter system kill session 'sid, serial#';
3、查询用户SQL语句:
SQL> select user_name, sql_text from v$open_cursor;
SQL> select user_name, sql_text from v$open_cursor;
SQL> ALTER SESSION SET
NLS_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_TERRITORY= 'CHINA'
NLS_CURRENCY= 'RMB'
NLS_ISO_CURRENCY= 'CHINA'
NLS_NUMERIC_CHARACTERS= '.,'
NLS_CALENDAR= 'GREGORIAN'
NLS_DATE_FORMAT= 'yyyy-mm-dd dy'
NLS_DATE_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_SORT= 'BINARY'
TIME_ZONE= '+08:00'
NLS_DUAL_CURRENCY = 'RMB'
NLS_TIME_FORMAT = 'HH.MI.SSXFF AM'
NLS_TIMESTAMP_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM'
NLS_TIME_TZ_FORMAT = 'HH.MI.SSXFF AM TZH:TZM'
NLS_TIMESTAMP_TZ_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM TZH:TZM'