目录
[1、Users and Security 用户和安全](#1、Users and Security 用户和安全)
[2、Database Schema](#2、Database Schema)
[3、Checklist for Creating Users创建用户步骤](#3、Checklist for Creating Users创建用户步骤)
[2、OS Authentication 操作系统身份验证](#2、OS Authentication 操作系统身份验证)
[3、Dropping a User 删除用户](#3、Dropping a User 删除用户)
[4、Getting User Information 获取用户信息](#4、Getting User Information 获取用户信息)
Managing Users 管理用户
目标:
- 创建新的数据库用户
- 更改和删除现有数据库用户
- 监视现有用户的信息
- 获取用户信息
一、基础知识
1、Users and Security 用户和安全
2、Database Schema
- A schema is a namedcollection of objects.架构是一个命名的对象集合
- A user is created,and acorresponding schemais created.创建一个用户,并创建相应的模式。
- A user can beassociated with onlyone schema.一个用户只能与一个架构相关联。
- Username and schemaare often used interchangeably.用户名和schemaare 经常互换使用。
3、Checklist for Creating Users创建用户步骤
- 确定用户必须存储对象的表空间
- 决定每个表空间的配额
- 指定默认表空间和临时表空间
- 创建一个用户
- 将权限和角色授予用户
二、基础操作
1、创建一个用户
需要提前按照基础知识中的第三步明确操作步骤
代码格式如下:
sql
CREATE USER 用户名
IDENTIFIED BY 用户的密码(这里可能会因为密码过于简单而报错)
DEFAULT TABLESPACE 表空间的名字(这里是指定用户的默认表空间)
TEMPORARY TABLESPACE 临时表空间的名字(这里是指定用户的临时表空间);
注意:临时表空间如果不想指定可以不写,但是默认表空间得写
这个时候就已经创建用户成功了,但是还无法使用和这个用户登录,我们需要给这个用户权限
sql
grant create session to 用户名;
2、OS Authentication 操作系统身份验证
- OS_AUTHENT_PREFIX初始化参数指定用户名的格式
- 默认为ops$
sql
CREATE USER aaron
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA 15m ON data;
使用操作系统身份验证完整过程:
1、首先需要创建一个新用户(如果已经有其他用户也行)
创建用于的命令:
bashuseradd 用户名
然后设置用户密码:
bashpasswd 用户名
然后回车输入密码
2、进入数据库,使用sys用户登录
创建一个数据库用户:
sqlCREATE USER OPS$用户名(跟刚刚创建的用户保持一致) IDENTIFIED EXTERNALLY default tablespace 表空间的名字;
给这个用户权限:
sqlgrant create session to OPS$用户名;
3、退出数据库,然后切换到上边所创建的用户中
bashsu - 用户名
然后给这个用户设置Oracle的环境变量:
然后登录数据库:
bashsqlplus /
然后就会发现这个用户不需要密码和用户名的验证可以直接登录数据库,这就是操作系统身份验证。
当然使用最多的情况还是在数据库里面创建用户(基础操作:1 )的方法,操作系统身份验证不安全。
我们通常 在实际环境中需要关闭他
在sql中输入:show parameter auth可以查看
当前显示的是false是关闭的状态,在开发中只有需要的时候才打开使用,用完需要及时关闭。
3、Dropping a User 删除用户
-
使用DROP命令删除用户。
*sqlDROP USER 用户名;
-
如果架构包含对象,则使用CASCADE子句删除架构中的所有对象。
*sqlDROP USER 用户名 CASCADE;
-
当前连接到Oracle服务器的用户不能被删除
要查看那些用户连接上来我们可以查看v$session这个动态视图
因为字段比较多,所以我们可以先试用DESC查看这个表的结构,然后选择我们需要的进行查询:
sqlDESC v$session;
然后查看动态视图内的数据:
sqlselect sid, username, status from v$session;
如果你要删除的用户已经链接到服务器上我们需要先让他断开链接,然后在将他删除。
4、Getting User Information 获取用户信息
有关用户的信息可通过以下视图查询:
- DBA_USERS
- DBA_TS_QUOTAS