一、用户的概念
用户,即user,通俗的讲就是访问oracle数据库的“人”。在oracle中,可以对用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、资源限制、数据库审计等。每个用户都有一个口令,使用正确的用户/口令才能登录到数据库进行数据存取。
select * from dba_users;
二、用户默认表空间
表空间是信息存储的最大逻辑单位、当用户连接到数据库进行资料存储时,若未指出数据的目标存储表空间时,则数据存储在用户的默认表空间中。
比如:create table mytable(id varchar2(20),name varchar2(100));这条语句创建了一个表mytable,并将其存储在当前用户的默认表空间中,
若要指定表空间,则:create table mytable(id varchar2(20),name varchar2(100)) tablespace tbs1;。
用户的默认表空间可以在创建用户时指定,也可以使用aler user命令进行指定。
创建表空间:create tablespace tbs_tpv datafile '/opt/oracle/oradata/ORCL/tpv_01.dbf' size 50M;
select * from dba_data_files;
select * from dba_tablespaces;
三、用户临时表空间
临时表空间主要用于order by语句的排序。创建用户时可指定表空间,默认是使用temp临时表空间。
创建临时表空间:
create temporary tablespace tbs_temp_tpv tempfile '/opt/oracle/oradata/ORCL/tpv_01.dbf' size 50M;
select * from dba_temp_files;
查看临时表空间使用情况:
SELECT A.TABLESPACE_NAME,NVL(B.USED_KB, 0)/1024 used_M,
(A.ALLOC_KB - NVL(B.USED_KB, 0))/1024 free_M
FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 ALLOC_KB
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE,sum(BLOCKS) * 8 USED_KB
FROM V$SORT_USAGE
GROUP BY TABLESPACE) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE(+);
四、用户资源文件
用户资源文件用来对用户的资源存取进行限制,包括:cpu使用时间限制、内存逻辑读个数限制、每个用户同时可以连接的会话数据限制、一个会话的空间和时间限制、一个会话的持续时间限制、每次会话的专用SGA空间限制。
select * from dba_profiles;
select username,profile from dba_users;
五、用户表空间限额
表空间存储限制是用户在某一个表空间中可以使用的存储空间总数。
在创建或修改用户时,可以由参数quota指出。若用户在向表空间存储数据时,超出了此限额,则会产生错误。错误信息如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。
可以通过查询字典dba_ts_quotas查看表空间限额信息。
alter user USERNAME quota 100M on TABLESPACENAME;
alter user USERNAME quota unlimited on TABLESPACENAME;
grant unlimited tablespace to USERNAME;
六、创建、修改、删除用户
1.创建用户
语法如下:
CREATE USER username
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace
TEMPORARY TABLESPACE tablespace
PROFILE profile
QUOTA integer|UNLIMITED ON tablespace
各选项含义如下:
IDENTIFIED BY password:用户口令;
DEFAULT TABLESPACE tablespace:默认表空间;
TEMPORARY TABLESPACE tablespace:临时表空间;
PROFILE profile|DEFAULT:用户资源文件;
QUOTA integer[K|M]|UNLIMITED ON tablespace:用户在表空间上的空间使用限额,可以指定多个表空间的限额。
举例:
CREATE USER us1 IDENTIFIED BY abc123
DEFAULT TABLESPACE user01
TEMPORARY TABLESPACE temp
PROFILE DEFAULT
QUOTA 1000M ON user01;
2.修改用户
修改用户的语法是与创建用户的语法类似的,主要是CREATE USER 变成 ALTER USER。
3.删除用户
删除用户,是将用户及用户所创建的schema对象从数据库删除。如下:
SQL>DROP USER us1;
若用户us1含有schema对象,则无上述语句将执行失败,须加入关键字CASCADE才能删除,意思是连并其对象一起删除,如下:
SQL>DROP USER us1 CASCADE;
七、用户管理相关视图
ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(这里的*可以为TABLES, INDEXES, OBJECTS, USERS等)
1.查看所有用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
6.查看当前用户的缺省表空间
select username,default_tablespace from user_users;
7.查看某个角色的具体权限,如grant connect,resource,create session,create view to TEST;
查看RESOURCE具有那些权限,用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
网友评论