oracle(19c)用户管理
简介
本文介绍 Oracle 中的用户管理,包含以下内容:
-
概念介绍
-
系统用户
-
解锁 hr 用户
-
创建用户
-
用户相关案例
-
使用 Profile 管理用户口令
-
Oracle 的认证方式
-
重置管理员(sys)密码
1. 概念介绍
使用前可以自行安装oracle数据库
oracle19c安装(centos7)
https://blog.csdn.net/houduanq/article/details/140907205
-
Oracle 中可以创建多个 Database 实例,而每个实例下可以创建多个用户和表空间;
-
多个用户可以对同一个表空间进行管理;
-
一个数据库实例中的用户名不能重复;
2. 系统用户
当数据库服务器安装完成后,并创建数据库实例后,就会默认创建:sys、system、scott 等用户。sys、system 用户具有对数据库操作的最高权限,以下是这三个用户的对比:
用户 | 描述 | 默认密码 | 角色 |
---|---|---|---|
sys | 1. 超级管理员用户(相当于 mssql sa;mysql root); 2. 具有 Oracle 的最高权限; 3. 具有创建数据库的权限; 4. 可以更改 system 或其他普通用户的密码。 | 19c需自己设置 | sysdba |
system | 1. 操作管理员用户; 2. 权限仅次于 sys; 3. 没有创建数据库的权限,其他与 sys 相同; 4. 可以更改 sys 或其他普通用户的密码。 | 19c需自己设置 | sysoper |
hr | 1.普通用户; 2. 该用户默认是锁定的,可以用 system 去进行解锁; | hr |
注:sys和system密码安装时创建的
注:一般数据库维护,使用 system 用户登录即可。
3. 解锁 hr 用户
hr 是 Oracle(19c) 自带的一个普通用户,默认情况下该用户是被锁定的(不能登录),我们需要使用该用户时就需要进行解锁。下面是解锁步骤:
-
打开 shell 命令终端
-
sqlplus /nolog
-
conn sys/1 as sysdba #使用 sys 超级管理员登录
-
alter user scott account unlock; #解锁 scott 用户
-
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天内不允许登陆。
- 创建 Profile 对象
create profile profile1 limit failed_login_attempts 3 password_lock_time 2;
创建成后会在 Profiles(配置) 文件夹下多一个 profile1,编辑可以看到以上内容。
- 将 profile1 对象应用于指定用户
alter user hr profile profile1;
- 使用 scott 用户登录
conn hr/hr@db2 #连续三次失败,将看到如下提示ORA-28000: the account is locked
- 然后,可以使用 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,使新密码生效
相关文章:
oracle(19c)用户管理
简介 本文介绍 Oracle 中的用户管理,包含以下内容: 概念介绍 系统用户 解锁 hr 用户 创建用户 用户相关案例 使用 Profile 管理用户口令 Oracle 的认证方式 重置管理员(sys)密码 1. 概念介绍 使用前可以自行安装oracle数据库 oracle19c安装&a…...
数学建模--禁忌搜索
目录 算法基本原理 关键要素 应用实例 实现细节 python代码示例 总结 禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效? 禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究? 如何动态更新禁忌表以提高禁忌搜索算法的效率和性能&#…...
RabbitMQ动态创建生产者动态创建消费者
生产者 controller package org.log.rabbitmqdemo1.demos.web.producer;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;RestController public class Produc…...
HTML-07.表格标签
一、要制作的表格如下 二、代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>表格标签<…...
[Git][分支管理][下]详细讲解
目录 1.合并冲突2.分支管理策略3.分支策略1.基本原则2.bug分支3.删除临时分支 1.合并冲突 在实际分⽀合并的时候,有时候可能会遇到代码冲突的问题,例如: dev分支在写一部分代码,而master分支也没闲着,也在写着同一份代…...
Python面试宝典第27题:全排列
题目 给定一个不含重复数字的数组nums,返回其所有可能的全排列 。备注:可以按任意顺序返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 示例 2: 输…...
C语言调试宏全面总结(六大板块)
C语言调试宏进阶篇:实用指南与案例解析C语言调试宏高级技巧与最佳实践C语言调试宏的深度探索与性能考量C语言调试宏在嵌入式系统中的应用与挑战C语言调试宏在多线程环境中的应用与策略C语言调试宏在并发编程中的高级应用 C语言调试宏进阶篇:实用指南与案…...
C++学习之路(1)— 第一个HelloWorld程序
C学习之路(1)— 第一个HelloWorld程序 一、前言 C在C语言的基础上添加了对面向对象编程和泛型编程的支持,在 20世纪90年代便是最重要的编程语言之一,并在21世纪仍保持强劲势头。C继承了C语言高效、简洁、快速和可移植性的传统。 …...
Ionic 滑动框:实现高效移动应用交互体验
Ionic 滑动框:实现高效移动应用交互体验 Ionic 是一个强大的开源框架,用于构建高性能、高质量的移动端和网页应用。它以其优雅的UI组件和强大的功能而闻名,其中滑动框(Slider)是Ionic UI组件库中的一个重要组成部分。滑动框提供了一种直观、互动的方式来展示图片、文本或…...
书生大模型实战营第三期——入门岛
第一关:Linux基础知识 任务如下: 任务描述闯关任务完成SSH连接与端口映射并运行hello_world.py可选任务 1将Linux基础命令在开发机上完成一遍可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境可选任务 3创建并运行test.sh文件 1. 使用密码进行…...
Android入门之路 - WebView加载数据的几种方式
之前客户端加载H5时遇到了一些问题,我为了方便解决问题,所以将对应场景复刻到了Demo中,从之前的网络加载模拟为了本地加载Html的方式,但是没想到无意被一个基础知识点卡了一些时间,翻看往昔笔记发现未曾记录这种基础场…...
git的rebase 和 merge 的区别
rebase 和 merge 的区别 Merge(合并)和 Rebase(变基)是 Git 中两种常用的分支整合方式,它们有不同的工作原理和适用场景: Merge(合并): ● Merge 操作将两个分支的不同提…...
科普文:JUC系列之Java中7种阻塞队列BlockingQueue的双锁源码解读
概叙 Queue接口与List、Set同一级别,都是继承了Collection接口**。队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素,队列以一种先进先出的方式管理数据。 队列分为两种&#x…...
Kafka生产者(二)
1、生产者消息发送流程 1.1 发送原理 在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取…...
ReentrantLock源码分析
文章目录 一、AQS1、state属性2、等待队列3、条件变量 二、ReentrantLock1、非公平锁实现原理1.1 获取锁1.2 释放锁1.3 可重入原理1.4 可打断原理不可打断可打断 1.5 公平锁实现原理1.6 条件变量原理awaitsignal 一、AQS AQS全称是 AbstractQueuedSynchronizer,是阻…...
(四十一)大数据实战——spark的yarn模式生产环境部署
前言 Spark 是一个开源的分布式计算系统。它提供了高效的数据处理能力,支持复杂的数据分析和处理任务,是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误…...
反转链表 II(LeetCode)
题目 给你单链表的头指针 和两个整数 和 ,其中 。请你反转从位置 到位置 的链表节点,返回 反转后的链表 。 解题 class ListNode:def __init__(self, value0, nextNone):self.value valueself.next nextdef reverseBetween(head: ListNode, lef…...
Spring Boot 整合 Dubbo3 + Nacos 2.4.0
准备工作:Nacos 一、前置工作 安装Nacos,参考:Nacos 快速开始 此次安装 Nacos 最新版本:2.4.0 单机版 安装教程:Linux 安装 nacos 2.4.0-CSDN博客 二、创建配置文件 创建命名空间 新增配置文件 dubbo:application:i…...
力扣-200.岛屿数量
刷力扣热题–第二十四天:200.岛屿数量 新手第二十四天 奋战敲代码,持之以恒,见证成长 1.题目描述 2.题目解答 这道题刚开始想的确实想的绞尽脑汁的,看了相关解答才明白的,三种方法,这里想先用两种方法进行实现&#…...
学习 MediaPipe 手部检测和手势识别
学习 MediaPipe 手部检测和手势识别 1 手部检测1.0 Demo1.1 mediapipe.solutions.hands.Hands1.1.1 Hands 初始化1.1.2 process 检测 1 手部检测 1.0 Demo import time import cv2 import mediapipe as mpmpHands mp.solutions.hands hands mpHands.Hands(model_complexity…...
TypeScript 接口
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。即如果一个东西走起来像鸭子、叫起来像鸭子,那它就是鸭子。 通过定义接口,为特定的结构赋予了一个明确的名称和规范。 在 TypeScript 中&a…...
基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能
技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 前文三篇登录和注册功能的实现 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作…...
自定义SQL Server数据访问层:打造专属数据交互之门
自定义SQL Server数据访问层:打造专属数据交互之门 在软件开发中,数据访问层(Data Access Layer, DAL)扮演着至关重要的角色,它作为应用程序与数据库之间的桥梁,负责所有的数据存取操作。SQL Server作为一…...
【课程总结】Day15(中):图像分割之实例分割
前言 在上一章,我们通过学习了解了语义分割以及U-Net网络结构【课程总结】Day15(上):图像分割之语义分割。在本章,我们将学习了解图像分割中的实例分割以及相关的数据预处理注意事项。 图像分割 语义分割 语义分割…...
【Linux】常见指令
目录 一、指令的理解二、Linux的目录结构三、XShell 下的热键三、shell命令以及运行原理四、Linux常见的指令汇总1. ls 指令1.1 常见的一些有关 ls 的别名1.2 隐藏文件或目录1.3 * 的匹配 2. pwd 指令3. cd 指令3.1 cd . . 指令 4. touch指令5. mkdir指令6. rmdir指令 &&am…...
redis学习(一)
背景 redis是一个高性能的KV数据库,在工作中经常用到,可被用作缓存、分布式锁等,作为被高频使用的组件,了解其实现对工作有很大帮助(包括面试)。为此,在对redis有一定的使用、了解之后ÿ…...
LabVIEW在DCS中的优势
DCS(Distributed Control System,分布式控制系统)是一种用于工业过程控制的自动化系统。它将控制任务分散到多个控制单元中,通过网络连接和协调这些单元来实现对整个过程的监控和控制。DCS通常用于大型工业设施,如化工…...
JavaScript青少年简明教程:DOM和CSS简介
JavaScript青少年简明教程:DOM和CSS简介 DOM简介 DOM(Document Object Model)将文档表示为一个树形结构,其中每个节点都是一个对象,每个对象都有其自身的属性和方法。 通过对DOM的操作,开发者可以使用编…...
后端面试题日常练-day15 【Java基础】
题目 希望这些选择题能够帮助您进行后端面试的准备,答案在文末 Java中的自动装箱(Autoboxing)和拆箱(Unboxing)是指什么? a) 自动装箱是将基本数据类型转换为对应的包装类,拆箱是将包装类转换为…...
椭圆曲线加法运算
1. 定义 椭圆曲线 (Elliptic Curve) 不是函数,而是一条平面曲线,其方程是定义如下: y 2 x 3 a x b y^2x^3axb y2x3axb 其中,判别式 Δ − 16 ( 4 a 3 27 b 2 ) ≠ 0 \Delta -16(4a^327b^2)\neq 0 Δ−16(4a327b2)0。判别…...
采用计数排序的思想,解决只出现一次的数字
目录 问题 思路 代码 注意点: 问题 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常…...
网络云相册实现--nodejs后端+vue3前端
目录 主页面 功能简介 系统简介 api 数据库表结构 代码目录 运行命令 主要代码 server apis.js encry.js mysql.js upload.js client3 index.js 完整代码 主页面 功能简介 多用户系统,用户可以在系统中注册、登录及管理自己的账号、相册及照片。 每…...
程序设计基础(c语言)_补充_1
1、编程应用双层循环输出九九乘法表 #include <stdio.h> #include <stdlib.h> int main() {int i,j;for(i1;i<9;i){for(j1;j<i;j)if(ji)printf("%d*%d%d",j,i,j*i);elseprintf("%d*%d%-2d ",j,i,j*i);printf("\n");}return 0…...
【Unity】 HTFramework框架(五十四)【进阶篇】Deployment 轻量级资源部署管线
更新日期:2024年7月31日。 Github源码:[点我获取源码] 索引 Deployment 轻量级资源部署管线使用 Deployment一、创建部署配置二、编辑部署配置三、正式开始资源部署步骤一:资源打包步骤二:资源版本构建步骤三:资源版本…...
达梦数据库的系统视图v$cachesql
达梦数据库(DM Database)的系统视图V$CACHESQL用于显示有关数据库中缓存的SQL语句的信息。该视图提供了有关每个SQL语句的执行统计信息,帮助用户优化SQL性能和调试问题。 V$CACHESQL视图的主要字段 以下是V$CACHESQL视图中的一些关键字段&a…...
java基础 之 equals和==的区别
文章目录 浅谈“”特点比较基本类型比较引用类型 浅谈“equals”背景和使用重写equals自定义类为什么需要重写equals方法 总结附录代码及文章推荐 前言: 1、8大基本数据类型,它们的值直接代表了某种数据,不是对象的实例,不能使用n…...
学习STM32(1)--Keil软件安装与基本操作和Keil 软件高级应用
目录 1 引 言 2 实验目的 3 实验内容 3.1 认识单片机和STM32 3.2 安装、认识软件Keil和硬件STM32F103开发板 3.3 学习调试工程 3.4 Keil工程软件的配置 4 深入解析 思考一 1.以项目“12-GPIO输出—使用固件库点亮LED”为例子,认识本地工程文件夹…...
独立开发者系列(37)——理解async和await
1.理解同步与异步 同步就是执行某个任务A-B-C-D,就是严格按照顺序执行,可以理解为正常的代码逻辑,如果运行的代码都不是很消耗时间的情况系啊,同步可以减少编程的复杂度。但是对于请求远程服务结果的这种服务,如果同步…...
在C#中为图片添加数字水印的几种办法
最近在写个人项目时,有遇到需要将图片加上水印防止被盗取的需求。这里找了几种实现方式,可供有需要的朋友参考。 本身我不是搞算法这块的,所以这里只是找了一些实现,也没有继续深究下去。 以前在学校的时候从书上了解过可以将一…...
Vue的学习(二)
目录 一、class及style的绑定 1.v-bind:class绑定类名 绑定class为对象 编辑2. v-bind:class绑定类名 绑定class为对象 3.v-bind:class绑定类名 绑定class为数组 1) v-bind:class绑定类名 绑定class为数组 方法一: 2) v-bind:class绑定类名 绑定class为数组…...
PointNet和PointNet++论文解读
目录 一、导言 二、PointNet介绍 三、PointNet网络结构 1、损失函数 2、正则化 四、PointNet 1、分层次的点集抽象层 一、导言 PointNet来自CVPR2017,是最早直接处理点云数据用于计算机视觉的模型,并运用于分割、检测、场景理解任务,P…...
Pytest测试报告生成专题
在 pytest 中,你可以使用多个选项生成不同格式的测试报告。以下是几种常用的生成测试报告的方法: 1. 生成简单的测试结果文件 你可以使用 pytest 的 --junitxml 选项生成一个 XML 格式的测试报告,这个报告可以与 CI/CD 工具集成。 pytest --junitxml=report.xml这将在当前…...
【在Python中读取Excel文件内容】
在Python中读取Excel文件内容,常用的库有xlrd(主要用于读取.xls文件,但不支持.xlsx的较新版本),以及openpyxl(专门用于读取和写入.xlsx文件)和pandas(提供了一个更高级别的接口来处理…...
尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)
目录: (1)问题详解 (2)首页商品分类实现 (3)修改web-all模块 (4)页面渲染 (1)问题详解 (2)首页商品分类实现 前面做了…...
HTML 段落
HTML 段落 概述 HTML(超文本标记语言)是构建网页的标准语言,而段落是构成网页内容的基本单元。在HTML中,段落是通过<p>标签来定义的。本文将详细介绍HTML段落的相关知识,包括段落的基本结构、样式设置、以及在…...
Http自定义Header导致的跨域问题
最近写一个小项目,前后端分离,在调试过程中访问远程接口,出现了CORS问题,接口使用的laravel框架,于是添加了解决跨域的中间件,但是前端显示仍存在跨域问题,以为自己写的有问题,检查了…...
20240805 每日AI必读资讯
世界首例!AI机器人做牙科手术,8倍速诊疗比人类医生更精准 - Perceptive:让人工智能控制的自主机器人,首次对人类患者进行了全过程的牙科手术,速度大约是人类牙医的8倍。 - 两项新技术 1、OCT 3D成像系统:…...
COMSOL金属氢化物-放氢过程
在此记录下放氢过程的软件设置思路 1、采用的是"达西定律""层流" 物理场,其中"层流"物理场选择了”弱可压缩流动“,这里主要是选择”可压缩流动“的话,算出来的瞬时流量值跟实测差距太大了。 2、设置"达西…...
Unity2D在处理精灵表过程中出现不清晰的解决方法
问题阐述 在我们拿到一张精灵表的时候,我们通常要进行切割。但这样往往导致切割的效果不是很好,这里举一个简单的例子。 这是举例子用到的精灵表 我们先对他进行切割处理。 将single改为Multiope 进入精灵编辑器后,我们选择切割方式 此时我…...
C语言第13篇
1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …...