Oracle用户与模式(创建,修改,删除用户和用户权限管理)

一.模式

模式又称方案(Schema),是用户所拥有的所有数据库对象的集合,如表、索引、触发器等逻辑对象都存储在模式对象中。
模式的名称和用户的名称相同,用户与模式一一对应。默认情况下,用户所创建的数据库对象都保存在自己的同名模式中

注意事项:

用户可以直接访问自己模式中的对象,如要访问其他模式中的对象,则必须具有相应的对象权限
数据库中的对象名在同一个模式中是唯一的,但在不同模式中可以具有相同的对象名。
当用户访问其他模式中的对象时,必须加模式名来做前缀。即:模式名.对象名

1.模式的选择与切换

如果用户以NORMAL身份登录,则进入同名模式。
如果用户以SYSDBA身份登录,则进入SYS模式。

CONNCE SYS/ORACLE10  AS SYSDBA

如果用户以SYSOPER身份登录,则进入PUBLIC模式

CONN SYS/ORACLE 10  AS  SYSOPER

2.模式对象与非模式对象

模式对象
主要包括表、索引、DML触发器、视图、存储过程、程序包、JAVA类、自定义类型等。
注意:模式对象名最多为30个字符,且小写字母会被转换为大写字母。如使用的不是标准标识符,则需要将其封装在双引号中。
非模式对象
包括表空间、用户、角色、概要文件等。

二.创建用户

1 ORACLE 初始用户

SYS 是数据库中具有最高权限的数据库管理员,可以启动、修改、关闭数据库,拥有数据字典。

SYSTEM 是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。

PUBLIC 是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需要把权限授予PUBLIC 就可以了。

 2 查询用户信息的数据字典

1)ALL_USERS:包含数据库所有用户的用户名、用户id 和用户创建时间。
2)DBA_USERS:包含数据库所有用户的详细信息。
3)USER_USERS:包含当前用户的详细信息。
4)DBA_TS_QUOTAS:包含所有用户的表空间配额信息。
5)USER_TS_QUOTAS:包含当前用户的表空间配额信息。

3、SQL语句创建用户

CREATE  USER user_name
IDENTIFIED BY password
[DEFAULT TABLESPACE  tablespace_name]
[TEMPORARY TABLESPACE temp_tablespace_name]
[QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
[ACCOUNT LOCK|UNLOCK];

语法说明:
IDENTIFIED BY:指定帐户的初始口令
DEFAULT TABLESPACE :用户的默认表空间
TEMPORARY TABLESPACE :用户的临时表空间
QUOTA:用户在表空间中使用的限额
ACCOUNT :锁定或解锁帐户
【例】使用SQL语句创建用户orac_test,默认表空间为USERS,临时表空间为TEMP.

CREATE  USER orac_test
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

【例】使用用户orac_test连接数据库
注意:初始建立的数据库用户是没有任何权限的,不能执行任何数据库操作

三.权限管理

1、在 ORACLE中,权限分为两类:

(1)系统权限
       在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。如 CREATE SESSION CREATE TABLE。
(2)对象权限
        对某个特定的数据库对象执行某种操作的权限。如对特定表的插入、删除、修改、查询的权限。

2 、在ORACLE 中,将权限授予用户有如下两种方法:

(1)直接授权
   利用 GRANT 命令直接为用户授权。
(2)间接授权
   先将权限授予角色,然后再将角色授予用户。

3、在给用户授权时,应该注意以下4个方面

(1) 只有DBA才应当拥有ALTER DATABASE系统权限。
(2)应用程序开发者一般需要拥有CREATE TABLE  CREATE VIEW和CREATE INDEX等系统权限。
(3)普通用户一般只具有CREATE SESSION 系统权 限。
(4)只有授权时带有WITH ADMIN OPTION子句时,用户可以将获得权限授予其他用户。

 4 、给用户赋予权限

语法格式:
  GRANT 权限或角色 TO 用户;
【例】使用SQL语句给用户orac_test授予与删除CREATE SESSION系统权限

   GRANT CREATE SESSION TO orac_test;
REVOKE CREATE SESSION from orac_test;

5、使用数据字典user_users查看当前用户的详细信息

SQL>SELECT username FROM  user_users;

6、在当前用户下创建数据表,观察提示。

7、以 SYS登录,授权ORAC_TEST用户CREATE TABLE等权限

8、重新以ORAC_TEST登录,创建表,观察提示。     

如果成功创建表之后,在表中录入数据:
我们可以 重新以SYS登录,修改ORAC_TEST的默认表空间使用配额

alter user orac_test quoto 1m on users

然后再以ORAC_TEST用户登录,向表中录入数据,观察提示
 补充:角色管理
角色:一系列相关权限的集合。
ORACLE中有三个常用的预定义角色:
CONNECT  
RESOURCE
DBA

四.修改用户

ALTER  USER  user_name
IDENTIFIED BY password
[DEFAULT TABLESPACE  tablespace_name]
[TEMPORARY TABLESPACE temp_tablespace_name]
[QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
[PASSWORD EXPIRE]password expire://用来设置用户口令过期,失效,强制用户登录数据库时候必须修改口令.
[ACCOUNT LOCK|UNLOCK];

【例】使用SQL语句更改用户orac_test的密码;

 ALTER USER orac_test
     IDENTIFIED BY zhl123

【例】使用SQL语句锁定用户orac_test;

 ALTER USER orac_test
     ACCOUNT lock;

【例】使用SQL语句解锁用户orac_test;

   ALTER USER orac_test
     ACCOUNT unlock;

五.删除用户

语法格式:

DROP  USER  user_name
[CASCADE]
说明:

如果用户已创建了模式对象,在删除用户时必须增加CASCADE选项,表示删除用户时连同该用户创建的对象也删除,否则系统将提示错误信息
例:使用SQL语句删除用户orac_test;

     DROP USER orac_test  CASCADE
posted @ 2020-11-14 23:40  重雪  阅读(1909)  评论(0编辑  收藏  举报