当前位置: 首页 > news >正文

oracle(19c)用户管理

简介

本文介绍 Oracle 中的用户管理,包含以下内容:

  1. 概念介绍

  2. 系统用户

  3. 解锁 hr 用户

  4. 创建用户

  5. 用户相关案例

  6. 使用 Profile 管理用户口令

  7. Oracle 的认证方式

  8. 重置管理员(sys)密码

1. 概念介绍

使用前可以自行安装oracle数据库
oracle19c安装(centos7)

https://blog.csdn.net/houduanq/article/details/140907205
  1. Oracle 中可以创建多个 Database 实例,而每个实例下可以创建多个用户和表空间;

  2. 多个用户可以对同一个表空间进行管理;

  3. 一个数据库实例中的用户名不能重复;

2. 系统用户

当数据库服务器安装完成后,并创建数据库实例后,就会默认创建:sys、system、scott 等用户。sys、system 用户具有对数据库操作的最高权限,以下是这三个用户的对比:

用户描述默认密码角色
sys1. 超级管理员用户(相当于 mssql sa;mysql root);
2. 具有 Oracle 的最高权限;
3. 具有创建数据库的权限;
4. 可以更改 system 或其他普通用户的密码。
19c需自己设置sysdba
system1. 操作管理员用户;
2. 权限仅次于 sys;
3. 没有创建数据库的权限,其他与 sys 相同;
4. 可以更改 sys 或其他普通用户的密码。
19c需自己设置sysoper
hr1.普通用户;
2. 该用户默认是锁定的,可以用 system 去进行解锁;
hr

注:sys和system密码安装时创建的

注:一般数据库维护,使用 system 用户登录即可。

在这里插入图片描述

3. 解锁 hr 用户

hr 是 Oracle(19c) 自带的一个普通用户,默认情况下该用户是被锁定的(不能登录),我们需要使用该用户时就需要进行解锁。下面是解锁步骤:

  1. 打开 shell 命令终端

  2. sqlplus /nolog

  3. conn sys/1 as sysdba #使用 sys 超级管理员登录

  4. alter user scott account unlock; #解锁 scott 用户

  5. conn hr/hr

在这里插入图片描述

4. 创建用户

语法:

create user ljjbb identified by pwdforljbb[default tablespace ts_name][temporary tablespace temp_ts_name][quota 200m on ts_name];

解释如下:

identified by: 设置 ljbb 用户的登录密码;default tablespace: 指定该用户创建的表存放的表空间;temporary tablespace: 指定该用户创建的临时表存放的表空间;quota 200m on: 表名该用户创建的数据对象(表,索引,视图,pl/sql块)最大只能为200m;

1) 创建用户

conn system/1@o19c;  #以 SYS、SYSTEM 用户登录,其他用户没有权限create user ljbb identified by pwdforljbb@abd123;或者(指定默认存放的表空间)create user learn identified by learnpwd default tablespace myts01;

2) 删除用户

drop user learn [cascade];cascaed 参数:表示级联删除。当删除的用户下没有数据对象(表、视图等)时,该参数可选;否则必须指定该参数。

5. 用户相关案例

以 ljbb 用户为例。

1) 创建表

create table stud(id number, name varchar(20));

2) 创建并打开 SQL 脚本文件

edit /ljbb/oracle/sql/insert_stud.sql写入 insert 语句:insert into stud values(1, '张三');insert into stud values(2, '李四');commit;            #注意:一定要加提交命令

3) 执行 SQL 脚本文件

start /ljbb/oracle/sql/insert_stud.sql
select * from stud;

4) 锁定用户

alter user ljbb account unlock;

5) 删除用户

drop user ljbb cascade;

6) 查询用户

SELECT * FROM dba_users;                                  --查询所有用户
SELECT * FROM all_users;                                  --查询所有用户

6. 使用 Profile 管理用户口令

我们可以把 Profile 理解为一个数据对象(文件或规则),使用 DBeaver 以 system 用户登录,可以看到 Profiles(配置) 文件夹下已经有了默认的安全策略:
在这里插入图片描述

1) 限制用户恶意登录

语法:create profile profile_name limit failed_login_attempts 3 password_lock_time 2;
解释:3表示最多允许3次尝试;2表示锁定的时间(天)

案例: 允许某用户最多尝试登陆3次,如果3次都登陆失败,则锁定该用户,并且锁定后2天内不允许登陆。

  1. 创建 Profile 对象
create profile profile1 limit failed_login_attempts 3 password_lock_time 2;

在这里插入图片描述
创建成后会在 Profiles(配置) 文件夹下多一个 profile1,编辑可以看到以上内容。

  1. 将 profile1 对象应用于指定用户
alter user hr profile profile1;

在这里插入图片描述

  1. 使用 scott 用户登录
conn hr/hr@db2            #连续三次失败,将看到如下提示ORA-28000: the account is locked
  1. 然后,可以使用 system 用户进行解锁
alter user hr account unlock;

2) 限制口令的使用期限

语法: create profile profile_name limit password_life_time 10 password_grace_time 2;

案例: 对某个用户的密码做出限制,最多使用10天,宽限期为2天,到时必须修改密码。

1、创建 Profile 对象

create profile profile2 limit password_life_time 10 password_grace_time 2;

在这里插入图片描述
创建成后会在 Profiles 文件夹下多一个 profile1,编辑可以看到以上内容。

2、将 profile2 对象应用于指定用户

alter user hr profile profile2;

3、hr用户 10天后登录(测试可以修改数据库服务器时间)

conn hr/hr@o19c;ORA-28002: the password will expire within 2 days #密码将在2天内过期

4、scott 用户 12天后登录(测试可以修改数据库服务器时间)

conn hr/hr@o19c;ORA-28001: the password has expired        #密码已过期

提示:需要重新设置新密码,但前提是旧密码一定要正确

3) 删除 Profile

drop profile profile1 cascade;         #cascade 表示级联删除(有用户关联时)

7. Oracle 的认证方式

Oracle 有两种认证方式:

1. 操作系统认证

类似于 SQL Server 中的以 Windows 方式登录。

该认证方式只能登录到服务器中进行,直接认证操作系统登录用户是否隶属于 dba 组中,该用户组表示为 Oracle DBA Group(即:数据库管理员),如图(计算机管理 -> 本地用户和组):
在这里插入图片描述
在 Oracle 安装前需要创建 dba、oinstall 这两个组。所以,在服务器中登录,可以直接使用 as sysdba,而不会验证用户名和密码,该认证方式的用户称为特权用户。登录例如:

conn abcdef/aaabbb@db2 as sysdba #错误的用户名和密码也能登录成功

2. 数据库认证(用户密码认证)

类似于 SQL Server 中以 sa(用户名) + 密码的方式登录,该认证方式的用户成为普通用户,登录例如:conn hr/hr@db2

8. 重置管理员(sys)密码

有时候我们有可能忘记了 Oracle 数据库的管理员(sys)的密码,这时我们该怎么重置呢?下面是具体的操作步骤:

linux(19c)

1、停止数据库实例
– 这通常通过运行数据库管理工具或使用命令行实用程序来完成,例如使用SQL*Plus:

sqlplus / as sysdba
SQL> shutdown immediate;

在这里插入图片描述

2、以启动模式启动实例
– 这通常通过运行数据库管理工具或使用命令行实用程序来完成,例如使用SQL*Plus:

SQL> startup mount;

在这里插入图片描述
3、打开数据库

SQL> ALTER DATABASE OPEN;

在这里插入图片描述

4、重置SYS用户密码
使用SQL*Plus连接到数据库:

SQL> ALTER USER sys IDENTIFIED BY new_password;
注意将new_password替换为您想要设置的新密码

在这里插入图片描述
5、登录数据库

 conn sys/new_password as SYSDBA

在这里插入图片描述

window

1、生成新的密码文件,打开 dos 窗口执行以下命令:

C:\Users\Administrator>orapwd file=D:\oracle\product\11.2.0\dbhome_1\database\PWDorcl.ora password=syspwd entries=10

解释:password 表示新密码;entries 表示允许多少个客户端同时连接 Oracle 服务器。

2、重启 Oracle,使新密码生效

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • pytorch学习笔记3 tensor索引和切片
  • 如何使用哔哩哔哩下载与缓存视频?
  • 【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
  • Markdown语法学习
  • 同一台机器上,github多账号操作
  • HPC高性能计算平台
  • 体验 Whisper ,本地离线部署自己的 ASR 语音识别服务
  • 【第六章】测试理论与方法 - 灰盒测试的深入解析
  • SpringBoot 集成原生 Servlet、Filter、Listener
  • upload-labs漏洞靶场~文件上传漏洞
  • 【优秀python案例】基于python爬虫的深圳房价数据分析与可视化实现
  • Leetcode3227. 字符串元音游戏
  • 国产版Sora复现——智谱AI开源CogVideoX-2b 本地部署复现实践教程
  • C++速学day1
  • 做不好PPT的原因
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • Bootstrap JS插件Alert源码分析
  • CentOS7 安装JDK
  • DataBase in Android
  • Django 博客开发教程 16 - 统计文章阅读量
  • DOM的那些事
  • ES6核心特性
  • ng6--错误信息小结(持续更新)
  • Node项目之评分系统(二)- 数据库设计
  • Redis的resp协议
  • spring security oauth2 password授权模式
  • 初识MongoDB分片
  • 前端性能优化——回流与重绘
  • 我有几个粽子,和一个故事
  • ​ssh免密码登录设置及问题总结
  • # Panda3d 碰撞检测系统介绍
  • #QT(TCP网络编程-服务端)
  • #stm32驱动外设模块总结w5500模块
  • (2)空速传感器
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (4.10~4.16)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二十六)Java 数据结构
  • (分布式缓存)Redis分片集群
  • (附源码)计算机毕业设计大学生兼职系统
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core 控制台应用程序读取配置文件app.config
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET使用存储过程实现对数据库的增删改查
  • .py文件应该怎样打开?
  • 。。。。。
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @PreAuthorize与@Secured注解的区别是什么?
  • [C#]DataTable常用操作总结【转】
  • [C++]入门基础(1)
  • [C++初阶]string类的详解
  • [C++打怪升级]--学习总目录
  • [Docker]当下实测可用Docker镜像源