52-Oracle 23 ai DB_DEVELOPER_ROLE和BOOLEAN类型-新特性

Oracle 23ai RAC 部署竟然可以这么简单 《OracleShellInstall:一键部署Oracle RAC的智能工具》 摘要:OracleShellInstall是一款全自动化部署工具,可在30分钟内完成双节点Oracle RAC部署。该工具支持11g/12c/19c/21c/23ai全系列版本,具备MD5校验、系统参数自动调优、ASM磁盘组智能创建等特性。在RedHat 8.10系统实测中,1954秒即完成包含Grid安装、数据库创建等全流程,效率较传统手工部署提升800%。工具内置最佳实践配置,通过实时日志和智能容错机制降低部署风险,适用于 阅读详情

小伙伴们有时候还为开权限而烦恼呢,给太大有风险,开发不小心搞坏数据,给小了,

不停申请授权。现在需要配合各种安全检测,还需要进行授权管理的测评。

现在Oracle Database 23ai 的开发者角色与布尔类型新特性的改变。

一、权限管理标准化:DB_DEVELOPER_ROLE

​传统方案的办法
  • ​权限碎片化​:需手动组合 CONNECT(仅基础连接) + RESOURCE(基础对象创建)角色,缺失现代权限(如调试、JSON/图数据处理)
  • ​安全风险​:开发者常被过度授予 DBA 角色,导致生产环境误操作风险
​23ai 解决方案​和传统的对比
  • ​单角色覆盖全场景​:整合 40+ 系统权限,
  • 自动继承关键子角色​:包含 RESOURCE(基础对象创建)、CTXAPP(全文索引)、SODA_APP(JSON处理)
--23ai以前
-- 使用 SYSDBA 执行
CREATE USER app_dev IDENTIFIED BY "Pwd123!" DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
--User 已创建。
GRANT CONNECT,RESOURCE TO app_dev;  -- 基础开发权限
-- 单独授予调试权限(RESOURCE 不包含)
GRANT DEBUG CONNECT SESSION TO app_dev;  

-- 授予 JSON 处理角色(需单独添加)
  -- RESOURCE 在 23ai 前不自动包含此角色
GRANT SODA_APP TO app_dev;
--23ai
SYS@FREE> create user dev_user identified by "Pwd123!";

User created.
-- 1. 授予开发者角色(需 SYSDBA 执行)
GRANT DB_DEVELOPER_ROLE TO dev_user;

-- 2. 验证权限覆盖范围(以 dev_user 身份执行)
CONNECT dev_user/Pwd123!
SELECT PRIVILEGE 
FROM USER_SYS_PRIVS 
WHERE USERNAME = USER;
权限对比(传统 vs 23ai)​​ 

​权限类型​

CONNECT

RESOURCE(23ai)

DB_DEVELOPER_ROLE

​核心权限​

CREATE SESSION

CREATE TABLE/VIEW

继承RESOURCE所有权限

​现代开发支持​

无

部分(如属性图)

全面(AI/微服务/调度任务)

​安全管控​

低风险

中风险(权限冗余)

最小权限原则,审计友好

实操脚本​ 
-- 授予开发者角色
GRANT DB_DEVELOPER_ROLE TO dev_user;  

-- 验证权限列表
SELECT PRIVILEGE 
FROM DBA_SYS_PRIVS 
WHERE GRANTEE = 'DB_DEVELOPER_ROLE';  
-- 输出包含 CREATE JOB, DEBUG CONNECT SESSION...
--PRIVILEGE
----------------------------------------
CREATE DOMAIN
CREATE MLE
EXECUTE DYNAMIC MLE
CREATE CUBE BUILD PROCESS
CREATE CUBE
CREATE CUBE DIMENSION
CREATE MINING MODEL
CREATE JOB
DEBUG CONNECT SESSION
ON COMMIT REFRESH
CREATE DIMENSION
FORCE TRANSACTION
CREATE SESSION

13 rows selected.

二、布尔类型 BOOLEAN:杜绝逻辑冗余 

 传统模拟方案的缺陷​

​方案​

​实现​

​工程痛点​

NUMBER(1)

is_active NUMBER(1) CHECK (is_active IN (0,1))

需手动转换:WHERE is_active = 1

CHAR(1)

archived CHAR(1) CHECK (archived IN ('Y','N'))

语言依赖(如法语需 'O'/'N')

​NULL 处理​

用 NULL 表示“未知”

索引效率低,三值逻辑复杂

23ai 原生方案​
  • ​直接存储逻辑状态​:
ALTER TABLE HR.EMPLOYEES ADD is_processed BOOLEAN DEFAULT FALSE;
--Table altered.
  • 简化查询与更新​: 
-- 条件过滤
SELECT * FROM HR.EMPLOYEES WHERE is_processed = TRUE;  
--
SELECT * FROM HR.EMPLOYEES WHERE is_processed = FALSE;
107 rows selected.
迁移脚本​ 

 

-- 步骤1:添加原生布尔列(允许 NULL 作为过渡)
ALTER TABLE HR.employees 
  ADD is_processed_new BOOLEAN DEFAULT NULL;  -- 初始设为 NULL 便于区分未迁移数据

-- 步骤2:数据迁移(兼容数字型/字符型旧字段)
UPDATE HR.employees
  2  SET is_processed_new =
  3      CASE
  4          WHEN is_processed = 1 OR UPPER(is_processed) = 'Y' THEN TRUE
  5          WHEN is_processed = 0 OR UPPER(is_processed) = 'N' THEN FALSE
  6          ELSE NULL  -- 处理非法值或未定义状态
  7      END;
--
107 rows updated

-- 步骤3:验证迁移完整性
SELECT 
    COUNT(*) AS total_rows,
    COUNT(CASE WHEN is_processed_new IS NOT NULL THEN 1 END) AS migrated_count,
    COUNT(CASE WHEN is_processed_new IS NULL THEN 1 END) AS null_count
FROM HR.employees;
/* 
TOTAL_ROWS MIGRATED_COUNT NULL_COUNT
---------- -------------- ----------
       107            107          0
*/

-- 步骤4:清理非法值(可选)
UPDATE HR.employees
SET is_processed_new = FALSE  -- 将 NULL 设为默认值
WHERE is_processed_new IS NULL;
--0 rows updated.
-- 步骤5:添加非空约束 & 设置默认值
ALTER TABLE HR.employees 
  MODIFY is_processed_new BOOLEAN NOT NULL 
  ADD CONSTRAINT chk_valid_bool CHECK (is_processed_new IN (TRUE, FALSE));  -- 确保仅合法布尔值
--Table altered.
-- 步骤6:删除旧列 & 重命名新列
ALTER TABLE HR.employees DROP COLUMN is_processed;
ALTER TABLE HR.employees RENAME COLUMN is_processed_new TO is_processed;
--Table altered.
-- 步骤7:验证最终结构
SYS@FREE> DESC HR.employees;
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 EMPLOYEE_ID                                                                NUMBER(6)
 FIRST_NAME                                                                 VARCHAR2(20)
 LAST_NAME                                                         NOT NULL VARCHAR2(25)
 EMAIL                                                             NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                                               VARCHAR2(20)
 HIRE_DATE                                                         NOT NULL DATE
 JOB_ID                                                            NOT NULL VARCHAR2(10)
 SALARY                                                                     NUMBER(8,2)
 COMMISSION_PCT                                                             NUMBER(2,2)
 MANAGER_ID                                                                 NUMBER(6)
 DEPARTMENT_ID                                                              NUMBER(4)
 BONUS                                                                      NUMBER(8,2)
 GENDER                                                                     NUMBER(38)
 IS_PROCESSED                                                      NOT NULL BOOLEAN

三、23ai 的开发者角色、boolean类型

​新特性收益​
  • ​开发者角色的权限效率提升​:
  • 单角色替代 10+ 手动授权操作,配置时间减少 70%
  • 内置权限审计能力(通过 DBA_SYS_PRIVS 可追溯)
  • ​代码简洁性提升​:
  • 布尔类型减少 30% 的类型转换代码
  • 逻辑判断直读性增强(WHERE active vs WHERE active = 'Y')
注意​:DB_DEVELOPER_ROLE 为预定义角色,不可修改,支持 CDB/PDB 环境
 适应新特性修改步骤
  • 权限迁移​:
REVOKE CONNECT, RESOURCE FROM 老用户_user;  
GRANT DB_DEVELOPER_ROLE TO 老用户_user;
  • 布尔列升级​:优先在新表中使用 BOOLEAN,旧表分批迁移。
  • 生产验证​:

 

-- 检查布尔列约束
HR@localhost:1521/FREEPDB1>
SELECT column_name, data_type 
FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = 'EMPLOYEES';  -- 确认 data_type = 'BOOLEAN'
--
SELECT column_name, data_type
  2  FROM USER_TAB_COLUMNS
  3  WHERE TABLE_NAME = 'EMPLOYEES';

COLUMN_NAME
------------------------------------------------------------------------------------------------------------------------
DATA_TYPE
------------------------------------------------------------------------------------------------------------------------
EMPLOYEE_ID
NUMBER

FIRST_NAME
VARCHAR2

LAST_NAME
VARCHAR2
………………………………
GENDER
NUMBER

IS_PROCESSED
BOOLEAN
14 rows selected.
cesium 实现经纬线绘制和经纬度标注 废话不对数直接上线效果图及代码 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale= 阅读详情

相关推荐

保姆级教程:在Windows 10上为QT5.15.2配置Android开发环境(含SDK/NDK/JDK避坑指南)

本文提供了一份详细的Windows 10环境下为QT5.15.2配置Android开发环境的保姆级教程,涵盖SDK、NDK、JDK的安装与配置,以及常见问题的避坑指南。通过优化安装流程、解决Gradle下载慢等痛点,帮助开发者快速搭建稳定的编译环境,并提供了模拟器配置和调试技巧,确保开发效率。

weixin_30919571的博客 528

Oracle23ai来了,23爱,全能、超级巨兽...

Oracle23c改名为Oracle23ai,也意味着Oracle数据库正式从Cloud进入AI时代

IT邦德 6094

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 303

Oracle Database 23ai 正式发布,超级巨兽(集关系型、向量、文档、图、缓存、分布式数据库一体的全能数据库)

Oracle23c改名为Oracle23ai,也意味着Oracle数据库正式从Cloud进入AI时代。Oracle23ai版本是一个超级巨兽,简单总结下:AI能力:内置向量数据库,内置ONNX模型数据处理,内置Text2SQL,内置的机器学习算法持续增强;JSON能力增强,要干掉MongoDB,并且还是JSON与关系型双模型一体化方案;图数据处理能力增强,要干掉Neo4j,模型也是一体化设计;

云原生智能数据管理平台 3347

PPT高清导出秘籍:如何轻松设置600dpi图片分辨率

本文详细解析了PPT导出图片模糊的根本原因,并提供了通过修改Windows注册表将导出分辨率从默认的96dpi提升至600dpi的完整教程。该方法能显著提升图片清晰度,满足学术出版与高质量印刷需求,文中还包含效果对比、进阶设置及常见问题解答。

a0b1c2d3的专栏 1316

从仿真到流片:手把手教你优化65nm CMOS电荷泵的电流匹配与稳定性

本文详细介绍了在65nm CMOS工艺下优化电荷泵电流匹配与稳定性的工程实践指南。通过蒙特卡洛仿真、运放反馈结构版图技巧和全差分结构设计,实现优于1%的电流匹配精度和±2%以内的电流稳定性,特别针对current mismatch问题提供了有效的解决方案。

weixin_42522320的博客 417

聊聊 Oracle 23 ai 新特性、相关更改和停用功能

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)如需转载请联系授权 |(个人微信 ID:JiekeXu_DBA)大家好,我是 JiekeXu,江湖人称“强哥”,荣获 Oracle ACE 称号,墨天轮 MVP,墨天轮年度“墨力之星”,拥有 Oracle 11g OCP/OCM 认证,MySQL 5.7/8.0 OCP 认证以及 PCA、PCT...

JiekeXu的博客 2272

西门子交换机环网冗余设置(实战篇2.2)

MRP的重组时间为 200ms 因此 PROFINET 通信必须选择大于 200ms 的看门狗时间,看门狗。ET200SP默认为 2ms*3=6ms) MRP 的重组时间为 200ms 故系统会报出看门狗超时。更新,默认是 3 个周期,超出设置的周期数就会报 IO 设备故障。时间不是直接配置的,而是作为没有 IO 数据可接受的更新周期,也就是允许几个周期没有数据。来达到大于 200ms 的看门狗时间的要求(看门狗时间 可接受更新周期数 更新时间)。是IO 控制器和 IO 设备)

weixin_42580591的博客 366

23ai 的这个功能,让 DBA 离失业又更进一步

Oracle 23ai 已经正式发布一段时间了,不过由于OP版只能在 Oracle Engineer System 上使用,所以在我们接触到的客户中真正使用 23ai 非常少。最近我们借助于 Oracle 提供的 Free 版本,针对新特性进行了系统的分析和学习,发现 23ai 真的是将 AI 功能贯彻的非常彻底的一个版本,以至于我都怀疑 DBA 是不是真的会失业!本篇是 23ai 新特性系列文章的第一篇,介绍 SQL 分析报告,对新技术特性感兴趣的朋友可以点个关注,大家一起来学习。

oracle18c的博客 1773

香橙派OPi 6系列选型指南:RK3588与RK3588S开发板深度对比

开发板选型是嵌入式系统设计的关键环节,尤其在边缘计算和AI推理等场景中,芯片的差异直接影响硬件架构。瑞芯微RK3588及其精简版RK3588S是当前高端开发板的核心方案,两者在PCIe通道、显示输出和SATA支持上存在显著区别。理解这些原理,有助于工程师根据项目需求快速匹配产品。香橙派OPi 6系列基于这两款芯片,衍生出OPi 6、OPi 6 Pro与OPi 6 Max三种形态:紧凑型适合嵌入式门禁与AI盒子,Pro版凭借双屏异显和PCIe 3.0满足收银机与视频分析,Max的双2.5G网口和大内存则面向轻

weixin_29185167的博客 227

从零开始跑通3DGS教程:(四)修改(缩放、空间变换)colmap生成的sfm结果

通过colmap进行的sfm的普通方式会丢失场景的物理尺度信息,并且并不在符合一般认知的坐标系下,本文将读取colmap生成的点云和相机pose,将其进行空间变换和缩放之后,重新保存,新保存的结果仍然可以被colmap读取以及进行后续的稠密重建以及3dgs等工作

诺有缸的高飞鸟的博客 1424

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 296

Oracle--安装Oracle Database23ai Free

本文提供了Oracle数据库23ai的安装指南,涵盖Oracle Linux、Docker和VirtualBox三种环境的安装方法。首先介绍了Oracle Linux9虚拟机的安装,接着详细描述了通过RPM包安装Oracle数据库的步骤,包括下载、安装预安装包和数据库软件、配置数据库、设置环境变量、连接数据库以及配置开机自启。同时,也提供了Docker镜像和VirtualBox虚拟机的安装方法。最后,简要介绍了安装Oracle SQL Developer的方法。这些步骤为用户提供了全面的Oracle数据库2

恐龙让Lee的博客 3658

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

All In ai,Oracle 23C没了,等来了Oracle 23ai

今年一月份的Blog介绍Oracle命名规则的时候,说到Oracle的命名是紧紧跟随时代浪潮的前言科技的,在文章的最后还大胆预测也许Oracle的下一个版本就叫25A了,结果Oracle根本等不及,把原来已经海量宣传的Oracle 23C直接改名为23ai,好吧,我还是低估了Oracle拥抱新技术的决心!5月2日, Oracle Database 23ai正式发布!在过去四年中,Oracle数据库开发部门一直在努力研发Oracle 数据库的下一个长期支持版本,重点是AI和开发人员的工作效率。

xiaofan23z的专栏 1955

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于Oracle 23ai 你要知道的几件事情

同样这个版本的ai,虽然确实有部分ai功能的增强,但并没有太大的改变,只是延续了版本名是由当前热门技术来命名的传统而已。--长期支持版本,一般提供5年premier和3年extended的技术支持,虽然23ai起始时间线是放在2023年Q4,但是实际上发布应该是2024年Q2,所以加上8年,支持结束时间还是放到了2032年Q2,而不是2031年Q4。但是根据官网的消息,目前还不可以升级至23ai,至少要等到2024年下半年。---------------历史文章推荐------------------

xiaofan23z的专栏 2472

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

从Oracle 23 AI:又甩开国产数据库几条街

实际上对于修改单个pdb的状态(open、restoration、upgrade 3种模式),非常的实用,想想几年前我们修复一套12.2 cdb多租户数据库的时候,恢复好一些pdb之后,本来想暂时恢复部分业务,但是发现在恢复其他pdb的时候,还需要反复去操作cdb甚至重启,因此就非常的麻烦。昨天蓝星最强的关系型数据库Oracle发布了最新版的Oracle 23 Ai,实际上很早之前我们就测试并了解了一些Oracle 23c的内容,没想到正式Release的时候,直接改名为Ai版本了。我认为是非常实用的。

Roger的数据库专栏 2066

Oracle Database 23ai

Oracle Database 23AI 作为新一代长周期支持版本其赋能项目是非常多的

DBA_Benjamin的博客 1475

Oracle 23ai RAC安装部署文档

Oracle 23ai RAC安装部署

Leon-Ning Liu的博客 920

Oracle 23ai 对应windows版本安装配置&PLSQL导入pde文件&navicat连接Oracle

(另外在文件里添加新的连接没用,具体原因不清楚,free版本好像只能用FREE这个连接),用户名为sys或者system,这是oracle的默认用户,密码是当时安装时设置的密码。1、oracle数据库配置需要有服务名称,端口一般为1521,本地配置为localhost,用户名sys或者俄式system,需要连接时选择sysdba权限。3、下载后解压,运行setup.exe,运行时,会需要输入数据库密码,输入你的密码,并记住该密码。7、那么用navicat登录时,配置如下,连接名称随意,其他如下。

xshzgjshpy1的博客 3825

Oracle 23ai rpm安装配置及问题处理

PS:Oracle23ai新特性-报错信息更详细,提供报错信息的官网链接,但是个人认为作用不大,官网只是提供了报错的官方定义,对于解决问题并没有太大的作用。rpm安装包大概1.3GB,可以官网下载,如果官网下载较慢可以选择关注我公众号:潇湘秦,然后点:发消息->23ai-rpm 获得网盘链接。这样Oracle 23ai rpm报的安装方式就完成了,相较于之前的版本安装确实简洁了非常非常多,关注博主,后续更新更多23ai新特性。------------历史文章推荐----------------

xiaofan23z的专栏 1944

Oracle 23ai 发布,国产数据库们都沉默了

几天前,全球最大的数据库软件公司 Oracle 发布了最新版的 Oracle Database 23ai ,集成了最新的 AI Vector Search(AI 向量搜索引擎),允许根据概念内容轻松搜索存储在任务关键型数据库中的文档、图像和关系数据,为企业数据和应用程序开发带来 AI 科技赋能。

Stayhungry,Stayfoolish. 2865

数据库信息速递: Oracle 23C 引入了向量搜索功能,为生成式人工智能应用提供支持 (译)...

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共1350人左右 1 + 2 + 3 + 4) 3群突破 400关闭自由申请,新人会进4群,另欢迎 ...

sql server的专栏 481

把AI技术加入到数据库,是一种什么体验?

SELECT AI是Oracle 23ai新功能,通过SELECT AI,可以使用自然语言和Oracle对话,生成式人工智能大语言模型(LLM)与Oracle SQL相结合,使您能够描述您想要的内容(声明性意图),并让数据库生成与您的模式相关的SQL查询。本文主要介绍如何使用Select AI和数据库交互,没有SQL经验如何轻松操作数据库。数据库技术正在向智能化方向发展,数据库和AI技术的结合,提高了数据库管理的效率和准确性。

chenoracle的博客 1861

Oracle 23ai 图形界面安装

新年的第一篇博客,展示下Oracle 23ai的图形化安装。主要给大家看下界面,安装的过程与19c没什么不同。

In-Memory Computing Technology 1379

Oracle 23ai 中的重要新特性 VECTOR 数据类型

Oracle 23ai 中的 VECTOR 数据类型是 Oracle 数据库在 AI 领域的一个重要新特性

zxrhhm的博客 2034
上一篇: 51-Oralce Enterprise Manager 24ai(最新版emcc)安装
下一篇: 53-Oracle sqlhc多版本实操含(23 ai)
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值