常用的查看Oracle数据库状态的语句查看当前用户的权限
select * from session_privs;查看当前用户的表
select table_name from user_tables;查看所有用户的表
select table_name from all_tables;查看系统表
select table_name from dba_tables;查看表字段
select * from user_tab_columns where Table_Name=’表名称’;查看表注释
select * from user_tab_comments;查看字段注释
select * from user_col_comments where Table_Name=’表名称’;查看所有用户
select * from all_users;查看当前用户
select * from user_users;查看用户系统权限
select * from user_sys_privs;查看当前用户定时任务
select * from user_jobs;调试Oracle存储过程权限
grant debug any procedure,debug connect session to username
Oracle 表空间、用户、对象权限、系统权限表空间
语法: CREATE TABLESPACE tablespacename
DATAFILE ‘filename’[size integer]
[AUTOEXTEND[OFF|ON]]
tablespancename:表示创建表空间的名称。
filename:表示组成表空间的一个活多个数据文件,当有多个数据文件时,使用,分隔。
size:指定文件的大小,单位是K(字节)或者M(兆)。
AUTOEXTEND:用来启用或警用数据文件的自动扩展,只有设置了AUTOEXTEND后,在存储空间使用完毕后才会自动扩展,设置为ON即可,如果设置为OFF,则不能自动扩展。会导致存储空间不足的情况。 例子: CREATE TABLESPACE ODIN_ITMS_DATA DATAFILE
‘E:/app/Administrator/oradata/ITMS_DATA.DBF’ SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G,
‘E:/app/Administrator/oradata/ITMS_DATA_01.DBF’ SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 5G
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;用户与模式
用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作
SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象
SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象
模式(schema):是某个用户拥有所有对象的集合。具有创建对象权限并创建了对象的用户称为拥有某个模式
注意:创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户创建及修改用户
条件:需要具有创建用户的权限,如sys,system,sysdba,dba role等
语法: CREATE USER user
IDENTIFIED {BY password | EXTERNALLY | GLOBALLY AS external name }
[DEFAULT TABLESPACE tablespace_name]
[TEMPORARY TABLESPACE tablespace_name]
[QUOTA {n {[K|M] | UNLIMITED } ON tablespace_name
QUOTA {n {[k|M] | UNLIMITED } ON tablespace_name … ]
[PASSWORD EXPIRE]
[ACCOUNT { LOCK | UNLOCK }]
[PROFILE { profile_name | DEFAULT }] 例子:
CREATE USER ZHZ
IDENTIFIED BY zhz
DEFAULT TABLESPACE ITMS_DATA
TEMPORARY TABLESPACE ITMS_TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;Oracle权限
系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等
对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等
常用的系统权限: CREATE SESSION 创建会话
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 在用户模式中删除表
DROP ANY TABLE 在任何模式中删除表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式的存储过程
CREATE USER 创建用户
DROP USER 删除用户
CREATE VIEW 创建视图 授予用户系统权限 GRANT privilege [, privilege…] TO user [, user| role, PUBLIC…]
[WITH ADMIN OPTION];
PUBLIC 所有用户
WITH ADMIN OPTION 使用户同样具有分配权限的权利,可将此权限授予别人
查看系统权限
select * from system_privilege_map where name like ‘%VIEW%’ order by name;
不同的对象具有不同的对象权限,
对象的拥有者拥有所有权限,
对象的拥有者可以向外分配权限。
常用的对象权限: alter(修改) delete (删除) select(查询) insert(添加)
update (修改) index (索引) references (引用) execute (执行)
对象授权 GRANT object_priv|ALL [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
ALL:所有对象权限
PUBLIC:授给所有的用户
WITH GRANT OPTION:允许用户再次给其它用户授权
—