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
相关推荐
草莓熊Lotso16 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
进击的荆棘17 小时前
MySQL——库的操作
数据库·mysql
小南家的青蛙17 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
2601_9679801118 小时前
“小程序·云开发”上线 助力开发者的高效利器
数据库·存储管理·小程序云开发·云函数·开发者工具
zhangjw3418 小时前
1-9 SELECT 查询基础:where、group by、having、order by、limit offset
数据库·postgresql·pg数据库
唐老板18 小时前
Postgres 慢查询,先取证再动手
数据库·ai编程
笃行3501 天前
数据库性能优化的五处内核改造,KingbaseES 配了四件诊断工具
数据库
非优秀程序员1 天前
第02章 杭电的英语老师与一台服务器|《互联网产品恩仇录》
数据库·node.js·代码规范
知已难寻1 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
默|笙1 天前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip