Oracle专题2之用户、权限、角色以及表空间的管理
发布时间:2020-12-12 14:13:33 所属栏目:百科 来源:网络整理
导读:1、用系统用户登录Oracle 只有用合法的用户才能够访问Oracle数据库。Oracle默认的系统用户:sys/system、sysman、scott。 a、系统用户说明 sys:这个账户相当于SQL server中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库的所有管理任务。 system
1、用系统用户登录Oracle
a、系统用户说明
b、Oracle用户登录的语法格式
C:UsersAdministrator>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期日 11月 26 21:28:37 2017 Copyright (c) 1982,2010,Oracle. All rights reserved. SQL> conn sys/02000059 as sysdba 已连接。 c、启动scott用户
SQL> conn scott/tiger ERROR: ORA-28000: the account is locked 警告: 您不再连接到 ORACLE。 SQL> conn sys/02000059 as sysdba 已连接。 SQL> alter user scott account unlock; 用户已更改。 SQL> conn scott/tiger ERROR: ORA-28001: the password has expired 更改 scott 的口令 新口令: 重新键入新口令: 口令已更改 已连接。 2、Oracle表空间的管理:创建表空间a、什么是表空间?
b、表空间的分类
c、创建表空间的语法格式
SQL> conn sys/02000059 as sysdba 已连接 SQL> create tablespace test1_tablespace datafile 'testfile.dbf' size 10m; 表空间已创建 SQL> create temporary tablespace temptest1_tablespace tempfile 'tempfile.dbf' size 10; 表空间已创建
SQL> select file_name from dba_data_files; FILE_NAME E:APPADMINISTRATORORADATAORCLUSERS01.DBF E:APPADMINISTRATORORADATAORCLUNDOTBS01.DBF E:APPADMINISTRATORORADATAORCLSYSAUX01.DBF E:APPADMINISTRATORORADATAORCLSYSTEM01.DBF E:APPADMINISTRATORORADATAORCLEXAMPLE01.DBF E:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASETESTFILE.DBF 已选择6行。 SQL> select file_name from dba_temp_files; FILE_NAME E:APPADMINISTRATORORADATAORCLTEMP01.DBF E:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASETEMPFILE1.DBF SQL> 3、Oracle的用户管理a、创建用户的语法格式
SQL> create user eason identified by test default tablespace test1_tablespace te mporary tablespace temptest1_tablespace; 用户已创建。 SQL> b、查看创建的用户 - select username from dba_users; - 如下示例所示: SQL> select username from dba_users; USERNAME EASON MGMT_VIEW SYS SYSTEM DBSNMP SYSMAN SCOTT ... c、给创建的用户授权
SQL> grant connect to eason; 授权成功。 SQL> d、管理用户
SQL> connect eason/test 已连接。 SQL> Alter user eason identified by 02000059; 用户已更改。
SQL> conn sys/02000059 as sysdba; 已连接。 SQL> alter user eason account lock; 用户已更改。 SQL> drop user eason cascade; 用户已删除。 SQL> 4、Oracle的角色管理
a、三种标准的角色
SQL> conn /as sysdba 已连接。 SQL> create user user01 identified by pass01; 用户已创建。 SQL> conn user01/pass01 ERROR: ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。
SQL> conn /as sysdba 已连接。 SQL> grant connect to user01; 授权成功。 SQL> conn user01/pass01; 已连接。
SQL> conn /as sysdba 已连接。 SQL> create user user01 identified by pass01; 用户已创建。 SQL> conn user01/pass01 ERROR: ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。 SQL> conn /as sysdba 已连接。 SQL> grant connect to user01; 授权成功。 SQL> conn user01/pass01; 已连接。
SQL> conn user01/pass01; 已连接。 SQL> create table test(id number,name varchar2(20)); create table test(id number,name varchar2(20)) 第 1 行出现错误: ORA-01031: 权限不足 SQL> conn /as sysdba; 已连接。 SQL> grant resource to user01; 授权成功。 SQL> conn user01/pass01; 已连接。 SQL> create table test(id number,name varchar2(20)); 表已创建。
SQL> conn user01/pass01; 已连接。 SQL> create user user02 identified by pass02; create user user02 identified by pass02 第 1 行出现错误: ORA-01031: 权限不足 SQL> conn /as sysdba; 已连接。 SQL> grant dba to user01; 授权成功。 SQL> conn user01/pass01; 已连接。 SQL> create user user02 identified by pass02; 用户已创建。 b、创建角色
C:UsersAdministrator>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期一 11月 27 09:26:10 2017 Copyright (c) 1982,Oracle. All rights reserved. SQL> conn sys/02000059 as sysdba 已连接。 SQL> create role manager; 角色已创建。 c、为角色赋予权限
SQL> grant create table,create view TO manager; 授权成功。 SQL> d、将角色赋予用户
SQL> grant manager TO user01; 授权成功。 SQL> e、撤销对用户授予的权限
SQL> revoke manager from user01; 撤销成功。 SQL> f、删除自定义角色
SQL> drop role manager; 角色已删除。 SQL> 5、Oracle用户的权限管理
a、系统权限
SQL> select * from system_privilege_map; PRIVILEGE NAME PROPERTY -3 ALTER SYSTEM 0 -4 AUDIT SYSTEM 0 -5 CREATE SESSION 0 -6 ALTER SESSION 0 -7 RESTRICTED SESSION 0 -10 CREATE TABLESPACE 0 -11 ALTER TABLESPACE 0 -12 MANAGE TABLESPACE 0 -13 DROP TABLESPACE 0 -15 UNLIMITED TABLESPACE 0 -20 CREATE USER 0 PRIVILEGE NAME PROPERTY -21 BECOME USER 0 -22 ALTER USER 0 ... 已选择208行。
alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任意序列的权限 alter any snapshot 修改任意快照的权限 alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限 alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的权限 alter sequence 修改拥有的序列权限 alter session 修改数据库会话的权限 alter sytem 修改数据库服务器设置的权限 alter table 修改拥有的表权限 alter tablespace 修改表空间的权限 alter user 修改用户的权限 analyze 使用analyze命令分析数据库中任意的表、索引和簇 audit any 为任意的数据库对象设置审计选项 audit system 允许系统操作审计 backup any table 备份任意表的权限 become user 切换用户状态的权限 commit any table 提交表的权限 create any cluster 为任意用户创建簇的权限 create any index 为任意用户创建索引的权限 create any procedure 为任意用户创建存储过程的权限 create any sequence 为任意用户创建序列的权限 create any snapshot 为任意用户创建快照的权限 create any synonym 为任意用户创建同义名的权限 create any table 为任意用户创建表的权限 create any trigger 为任意用户创建触发器的权限 create any view 为任意用户创建视图的权限 create cluster 为用户创建簇的权限 create database link 为用户创建的权限 create procedure 为用户创建存储过程的权限 create profile 创建资源限制简表的权限 create public database link 创建公共数据库链路的权限 create public synonym 创建公共同义名的权限 create role 创建角色的权限 create rollback segment 创建回滚段的权限 create session 创建会话的权限 create sequence 为用户创建序列的权限 create snapshot 为用户创建快照的权限 create synonym 为用户创建同义名的权限 create table 为用户创建表的权限 create tablespace 创建表空间的权限 create user 创建用户的权限 create view 为用户创建视图的权限 delete any table 删除任意表行的权限 delete any view 删除任意视图行的权限 delete snapshot 删除快照中行的权限 delete table 为用户删除表行的权限 delete view 为用户删除视图行的权限 drop any cluster 删除任意簇的权限 drop any index 删除任意索引的权限 drop any procedure 删除任意存储过程的权限 drop any role 删除任意角色的权限 drop any sequence 删除任意序列的权限 drop any snapshot 删除任意快照的权限 drop any synonym 删除任意同义名的权限 drop any table 删除任意表的权限 drop any trigger 删除任意触发器的权限 drop any view 删除任意视图的权限 drop profile 删除资源限制简表的权限 drop public cluster 删除公共簇的权限 drop public database link 删除公共数据链路的权限 drop public synonym 删除公共同义名的权限 drop rollback segment 删除回滚段的权限 drop tablespace 删除表空间的权限 drop user 删除用户的权限 execute any procedure 执行任意存储过程的权限 execute function 执行存储函数的权限 execute package 执行存储包的权限 execute procedure 执行用户存储过程的权限 force any transaction 管理未提交的任意事务的输出权限 force transaction 管理未提交的用户事务的输出权限 grant any privilege 授予任意系统特权的权限 grant any role 授予任意角色的权限 index table 给表加索引的权限 insert any table 向任意表中插入行的权限 insert snapshot 向快照中插入行的权限 insert table 向用户表中插入行的权限 insert view 向用户视图中插行的权限 lock any table 给任意表加锁的权限 manager tablespace 管理(备份可用性)表空间的权限 references table 参考表的权限 restricted session 创建有限制的数据库会话的权限 select any sequence 使用任意序列的权限 select any table 使用任意表的权限 select snapshot 使用快照的权限 select sequence 使用用户序列的权限 select table 使用用户表的权限 select view 使用视图的权限 unlimited tablespace 对表空间大小不加限制的权限 update any table 修改任意表中行的权限 update snapshot 修改快照中行的权限 update table 修改用户表中的行的权限 update view 修改视图中行的权限 ## b、授予用户(或角色)系统权限的语法格式 - GRANT privilege [,privilege...] TO user [,user | role,PUBLIC...] - 举例:grant create table,create sequence to manager; grant manager to user01,user02;(注意:这句话的意思是对用户user01,user02分配了创建表,创建序列的权限。) SQL> grant create table,create sequence to manager; 授权成功。 SQL> c、撤销用户(或角色)系统权限的语法格式
SQL> revoke create table,create sequence from manager; 撤销成功。 SQL> d、对象权限
SQL> select * from table_privilege_map; PRIVILEGE NAME 0 ALTER 1 AUDIT 2 COMMENT 3 DELETE 4 GRANT 5 INDEX 6 INSERT 7 LOCK 8 RENAME 9 SELECT 10 UPDATE 11 REFERENCES 12 EXECUTE 16 CREATE 17 READ 18 WRITE 20 ENQUEUE 21 DEQUEUE 22 UNDER 23 ON COMMIT REFRESH 24 QUERY REWRITE 26 DEBUG 27 FLASHBACK 28 MERGE VIEW 29 USE 30 FLASHBACK ARCHIVE 已选择26行。 e、授予用户(或角色)对象权限的语法格式
SQL> conn user01/pass01; 已连接。 SQL> select * from scott.emp; select * from scott.emp 第 1 行出现错误: ORA-00942: 表或视图不存在 SQL> conn /as sysdba; 已连接。 SQL> grant select on scott.emp to user01; 授权成功。 SQL> conn user01/pass01; 已连接。 SQL> select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 17-12月-80 800 20 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 f、撤销用户(或角色)对象权限的语法格式
SQL> conn /as sysdba; 已连接。 SQL> revoke select on scott.emp from user01; 撤销成功。 SQL> conn user01/pass01; 已连接。 SQL> select * from scott.emp; select * from scott.emp 第 1 行出现错误: ORA-00942: 表或视图不存在 6、表空间的管理:查看用户的表空间a、oracle数据字典
b、查看用户的表空间
SQL> conn scott/02000059 已连接。 SQL> select tablespace_name from dba_tablespaces; select tablespace_name from dba_tablespaces 第 1 行出现错误: ORA-00942: 表或视图不存在 SQL> select tablespace_name from user_tablespaces; TABLESPACE_NAME SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE TEST1_TABLESPACE TEMPTEST1_TABLESPACE 已选择8行。
SQL> conn /as sysdba; 已连接。 SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE TEST1_TABLESPACE TEMPTEST1_TABLESPACE 已选择8行。 SQL> select tablespace_name from user_tablespaces; TABLESPACE_NAME SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE TEST1_TABLESPACE TEMPTEST1_TABLESPACE 已选择8行。 c、查看系统用户的表空间
SQL> conn system/02000059 as sysdba 已连接。 SQL> select default_tablespace,temporary_tablespace from dba_users where username = 'SYSTEM'; DEFAULT_TABLESPACE TEMPORARY_TABLESPACE SYSTEM TEMP SQL> select username,default_tablespace,temporary_tablespace from dba_users; USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE MGMT_VIEW SYSTEM TEMP SYS SYSTEM TEMP SYSTEM SYSTEM TEMP SCOTT USERS TEMP ... d、设置用户默认或者临时表空间
SQL> ALTER USER user01 DEFAULT TABLESPACE TEST1_TABLESPACE TEMPORARY TABLESPACE TEMPTEST1_TABLESPACE 用户已更改。 SQL> select default_tablespace,temporary_tablespace from dba_users where username='USER01'; DEFAULT_TABLESPACE TEMPORARY_TABLESPACE TEST1_TABLESPACE TEMPTEST1_TABLESPACE 7、表空间管理:修改表空间的状态a、修改表空间的状态1
SQL> alter tablespace test1_tablespace offline; 表空间已更改。 SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE'; STATUS OFFLINE b、修改表空间的状态2
SQL> alter tablespace test1_tablespace read only; alter tablespace test1_tablespace read only 第 1 行出现错误: ORA-01539: 表空间 'TEST1_TABLESPACE' 未联机 SQL> alter tablespace test1_tablespace online; 表空间已更改。 SQL> alter tablespace test1_tablespace read only; 表空间已更改。 SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE'; STATUS READ ONLY c、增加表空间中的数据文件
SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE'; STATUS READ ONLY SQL> alter tablespace test1_tablespace add datafile 'test2_datafile.dbf' size 10m; alter tablespace test1_tablespace add datafile 'test2_datafile.dbf' size 10m 第 1 行出现错误: ORA-01641: 表空间 'TEST1_TABLESPACE' 未联机 - 无法添加数据文件 SQL> alter tablespace test1_tablespace read write; 表空间已更改。 SQL> alter tablespace test1_tablespace add datafile 'test2_datafile.dbf' size 10m; 表空间已更改。 SQL> select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE'; FILE_NAME E:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASETESTFILE.DBF E:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASETEST2_DATAFILE.DBF
d、增加表空间中的删除数据文件
SQL> alter tablespace test1_tablespace DROP DATAFILE 'TEST2_DATAFILE.DBF'; 表空间已更改。 SQL> select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE'; FILE_NAME E:APPADMINISTRATORPRODUCT11.2.0DBHOME_1DATABASETESTFILE.DBF SQL> alter tablespace test1_tablespace DROP DATAFILE 'TESTFILE.DBF'; alter tablespace test1_tablespace DROP DATAFILE 'TESTFILE.DBF' 第 1 行出现错误: ORA-03263: 无法删除表空间 TEST1_TABLESPACE 的第一个文件 e、删除表空间
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |