查询oracle中所有的角色一般是dba
select * from dba_roles;
查询oracle中所有的系统权限,一般是dba
select * from system_privilege_map order by name;
查询oracle中所有的对象权限,一般是dba
select distinct privilege from dba_tab_privs;
查询数据库的表空间
select tablespace_name from dba_tablespaces;
1.如何查询一个角色包含的权限
a.一个角色包好的系统权限
select * from dba_sys_privs where grantee='CONNECT';
或是
select * from role_sys_privs where role='CONNECT';
b.一个角色包含的对象权限
select * from dba_tab_privs where grantee='CONNECT';
2.oracle究竟有多少中角色
select * from dba_roles;
3.如何查看某个用户具有什么角色
select * from dba_role_privs where grantee='SCOTT';
显示当前用户可以访问的所有数据字典视图
select * from dict comments like '%grant%';
显示当前数据库的全称
select * from global_name;
改变表空间的状态
当建立表空间时,表空间处于联机(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句,但是在进行系统维护或是数据维护时,可能需要改变表空间的状态,一般情况下,有特权用户或是dba来操作
(1)使表空间脱机
alter tablespace 表空间名 offline;
(2)使表空间联机
alter tablespace 表空间 online;
(3)只读表空间
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读,alter tablespace 表空间名 read only;
<4使表空间可读写
alter tablespace 表空间名 read write;
<1知道表空间名,显示表空间包括的所有表
select * from all_tables where tablespace_name='表空间名'
<2知道表名,查看表属于那个表空间
select tablespace_name,table_name from user_tables where tale_name='emp';
通过<2可以知道scott.emp是在system这个表空间上,现在我们可以将system改为只读的但是不会成功,因为system是系统表空间,如果是普通表空间,那么我们就可以将其设为只读的
删除表空间
一般情况下,由特权用户或是dba来操作,如果其它用户操作,那么要求用户具有drop tablespace系统权限
drop tablespace ‘表空间’ including contents and datafiles
说明;including contents表示删除表空间时,删除该表空间的所有数据库对象,而datafiles表示将数据库文件也删除
扩展表空间
表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小,那么我么可以想象,假定表employee存放到data01表空间上,初始大小是2m,当数据满2m空间后,如果在向employee表插入数据,这样就会显示表空间不足的错误,此时需要扩展表空间,扩展表空间的方式有三种
(1)增加数据文件
alter tablespace sp01 add datafile 'd:\test\sp01.dbf' size 20m
(2)增加数据文件的大小
alter tablespace 表空间名 'd:\test\sp01.dbf' resize 20m
(3)设置文件自动增长
alter tablespace 表空间名 'd:\test\sp01.dbf' autoextend on next 10m maxsize 500m;
移动数据库文件
有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能够重新使用,需要将这些文件的副本移到其它的磁盘,然后恢复,例如移动数据库文件sp001.dbf为例来说明
<1确定数据文件所在的表空间
select tablespace_name from dba_data_files where file_name='d:\sp001.dbf';
<2使表空间脱机
确保数据文件的一致性,将表空间转变为offline的状态
alte tablespace sp01 offline
<3使用命令移动数据文件到指定的目标位置
host move d:\sp01.dbf c:\sp01.dbf
<4执行alter tablespace命令
在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改
alter tablespace sp01 rename datafile 'd:\sp001.dbf' to 'c;\sp01.dbf';
<5使的表空间联机
在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online状态
alter tablespace sp01 online