Oracle(15)Managing Users

目录

一、基础知识

[1、Users and Security 用户和安全](#1、Users and Security 用户和安全)

[2、Database Schema](#2、Database Schema)

[3、Checklist for Creating Users创建用户步骤](#3、Checklist for Creating Users创建用户步骤)

二、基础操作

1、创建一个用户

[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、首先需要创建一个新用户(如果已经有其他用户也行)

创建用于的命令:

bash 复制代码
useradd 用户名

然后设置用户密码:

bash 复制代码
passwd 用户名

然后回车输入密码

2、进入数据库,使用sys用户登录

创建一个数据库用户:

sql 复制代码
CREATE USER OPS$用户名(跟刚刚创建的用户保持一致) 
IDENTIFIED EXTERNALLY 
default tablespace 表空间的名字;

给这个用户权限:

sql 复制代码
grant create session to OPS$用户名;

3、退出数据库,然后切换到上边所创建的用户中

bash 复制代码
su - 用户名

然后给这个用户设置Oracle的环境变量:

然后登录数据库:

bash 复制代码
sqlplus /

然后就会发现这个用户不需要密码和用户名的验证可以直接登录数据库,这就是操作系统身份验证。

当然使用最多的情况还是在数据库里面创建用户(基础操作:1 )的方法,操作系统身份验证不安全。

我们通常 在实际环境中需要关闭他

在sql中输入:show parameter auth可以查看

当前显示的是false是关闭的状态,在开发中只有需要的时候才打开使用,用完需要及时关闭。

3、Dropping a User 删除用户

  • 使用DROP命令删除用户。
    *

    sql 复制代码
    DROP USER 用户名;
  • 如果架构包含对象,则使用CASCADE子句删除架构中的所有对象。
    *

    sql 复制代码
    DROP USER 用户名 CASCADE;
  • 当前连接到Oracle服务器的用户不能被删除

要查看那些用户连接上来我们可以查看v$session这个动态视图

因为字段比较多,所以我们可以先试用DESC查看这个表的结构,然后选择我们需要的进行查询:

sql 复制代码
DESC v$session;

然后查看动态视图内的数据:

sql 复制代码
select sid, username, status from v$session;

如果你要删除的用户已经链接到服务器上我们需要先让他断开链接,然后在将他删除。

4、Getting User Information 获取用户信息

有关用户的信息可通过以下视图查询:

  • DBA_USERS
  • DBA_TS_QUOTAS
相关推荐
路溪非溪13 分钟前
Linux内核启动流程
linux·运维·服务器
Kk.61619 分钟前
SQL编程题复习(24/9/20)
数据库·sql·pta考试·专本贯通
Yz987632 分钟前
Hadoop-MapReduce的 原理 | 块和片 | Shuffle 过程 | Combiner
大数据·数据库·数据仓库·hadoop·mapreduce·big data
anddddoooo34 分钟前
vulnhub(11):derpnstink(hydra爆破用户名和密码、验证的文件上传)
linux·运维·服务器·安全·web安全·网络安全
Xinan_____38 分钟前
Linux——k8s认识
linux·运维·kubernetes
加油=^_^=1 小时前
MySQL基础篇的补充
数据库·python·mysql
TO_ZRG1 小时前
使用jenkins打包unity工程
运维·unity·jenkins
liujiangxu1 小时前
jenkins声明式流水线语法详解
运维·自动化·jenkins
小立爱学习1 小时前
Linux 给 vmlinux 添加符号
linux·c语言
porkczr1 小时前
oracle rac多个实例就相当于多个数据库系统程序
数据库·oracle