oracle19c之用户、权限、表空间
oracle19c之⽤户、权限、表空间
  ⼀、⽤户相关操作
  1、查询⽤户
爱情谚语select * from dba_users; --查询全库所有的⽤户
select * from all_users; --查询当前⽤户可看到的⽤户
select * from user_users; --查询当前登录的⽤户
  2、创建⽤户(创建者需要有dba权限,⽤户名必须以c##开头,默认的表空间是users,新⽤户没有任何权限。)
create user c##sl IDENTIFIED BY 123456;
  3、删除⽤户
drop user c##sl2 cascade; --删除⽤户不会删除其表空间
  注意:⽆法删除⽤户C##SL3,报错“[Err] ORA-01940: ⽆法删除当前连接“的⽤户解决⽅法:
select username,sid,serial#,paddr from v$session where username='C##SL3';
alter system kill session '17,55857';
  4、修改密码
alter user c##sl3 identified by 1234;
2011年湖南高考作文  ⼆、权限相关操作
  a、系统权限:⽤户在系统层⾯的权限,如CREATE SESSION、SELECT ANY TABLE等不依赖于对象的权限
  b、对象权限:⽤户关于某个具体对象的权限,如SELECT、UPDATE、INSERT等依赖于表、视图、存储过程的权限
  c、⾓⾊:⼀组权限的集合
  注意:PUBLIC⽤户具有的权限,其他⽤户都会有,即修改PUBLIC⽤户的权限,其他⽤户也会对应得改变权限
聚集的反义词
  1、查看权限、⾓⾊
select * from user_tab_privs; --当前⽤户具有的对象权限
select * from dba_tab_privs WHERE grantee='C##SL' OR grantor='C##SL'; --全部⽤户具有的对象权限,查询C##SL⽤户的
select * from user_sys_privs; --当前⽤户具有的系统权限
select * from dba_sys_privs WHERE grantee='C##SL'; --全部⽤户具有的系统权限,查询C##SL⽤户的
SELECT * FROM user_role_privs; --当前⽤户具有的⾓⾊
SELECT * FROM dba_role_privs where grantee='C##SL'; --全部⽤户具有的⾓⾊,查询C##SL⽤户的
  注意:上⾯每⼀对查询出的结果应该⼀样,因为全部⽤户中肯定也包含当前⽤户,普通⽤户没有查询全部⽤户⾓⾊、权限表的权限  2、常⽤权限、⾓⾊
dba    管理员⾓⾊
connect    连接数据库⾓⾊,能修改、删除表及数据,不能创建表
resource  能创建表
create session    连接数据库权限
create table    建表权限
unlimited tablespace    操作表空间权限
select any table    查询任何表的权限
select on c##test.book    查询c##test⽤户的book表的权限
  说明:
临床医学是干什么的  a、⼀般来说,新建的普通⽤户后授予connect和resource⾓⾊就好了、如果是管理员需要再授予dba⾓⾊。
  b、对于普通⽤户,如果操作表时报错“[Err] ORA-01950: 对表空间 'xxx' ⽆权限”,需要执⾏⼀下语句
alter user c##sl3 quota unlimited on 表空间名;
  3、赋予权限、⾓⾊
grant create session to c##sl;
grant create session to c##sl with admin option; --授予的权限,c##sl⽤户可以再授予其它⽤户,具有传递性
grant create session,select any table to c##sl;
  4、撤销权限、⾓⾊
revoke select any table from c##sl;
revoke select any table,update any table from c##sl;
  三、表空间
  Oracle的数据存储在数据⽂件(data files)中,表空间只是⼀个逻辑概念,把⼀组数据⽂件放⼀起就是称为表空间。表空间与数据⽂件是⼀对多的关系,⽤户与表空间是多对多的关系。
  1)查询表空间
select * FROM dba_tablespaces;--查询所有表空间
select * from dba_data_files;--查询表空间对应数据⽂件的地址
select username,default_tablespace from dba_users where username='C##SL';--查询⽤户c##sl的表空间
SELECT--查看表空间详细信息
FILE_NAME as 数据⽂件,TABLESPACE_NAME as 表空间名称,
AUTOEXTENSIBLE as ⾃动扩展,STATUS as 状态,MAXBYTES as 可扩展最⼤值,
USER_BYTES as 已使⽤⼤⼩,INCREMENT_BY as ⾃动扩展增量
公司春节祝福语
FROM dba_data_files
  2)创建表空间
create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M;--固定⼤⼩100M
create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M autoextend on next 5M
maxsize unlimited;--初始⼤⼩100M,每次⾃动扩展5M,最⼤⽆限制
羽毛球场标准尺寸
create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' size 100M autoextend on next 5M
maxsize 2048M;--初始⼤⼩100M,每次⾃动扩展5M,最⼤扩展到2048M
  3)修改表空间
alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' resize 100M; --⼤⼩设为100M
alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend off; --关闭⾃动增长
alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on; --打开⾃动增长
alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on next 200M; --每次⾃动增长200m
alter database datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf' autoextend on next 200M maxsize 2048M;
--每次⾃动增长200m,最⼤不超过2G
  4)为⽤户指定表空间
alter user c##sl default tablespace sl
  5)删除表空间
drop tablespace sl;--删除空表空间,不删除物理⽂件
drop tablespace sl including contents;--删除表空间,不删除物理⽂件
drop tablespace sl including contents and datafiles;--删除表空间,也删除物理⽂件
drop tablespace sl including contents and datafiles cascade constraint;--如果其它表空间有外键依赖,也删除表空间
  备注:如果只删除了表空间,忘记删数据⽂件,然后再补删数据⽂件,可按如下操作:
create tablespace sl datafile '/opt/oracle/oradata/ORCLCDB/sl01.dbf'--没有指定size,只是表空间名、⽂件路径与原来的⼀致
drop tablespace sl including contents and datafiles;--重新执⾏操作

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。