暂无图片
暂无图片
13
暂无图片
暂无图片
暂无图片

聊聊 Oracle 23 ai 新特性、相关更改及本地化安装(Xmind 版)

1810

前 言

北京时间 2024年 5 月 3 日凌晨, Oracle Database 23ai 正式发布!在过去四年中,Oracle 数据库开发部门一直在努力研发 Oracle 数据库的下一个长期支持版本,重点是 AI 和提高开发人员的工作效率。鉴于此版本数据库中对 AI 的关注,Oracle Database 23c 更名为 Oracle Database 23ai。

正 文

5 月 10 日晚,应墨天轮相邀,第一次参加“墨天轮数据库沙龙-Oracle 23c to 23ai 专题直播活动”,也是第一次与其他三位大佬同台参与直播活动,更是我个人在公共平台的第一次露脸了,这里参与讨论 Oracle 23ai 相关的技术话题,我这里也参与分享了,主要有如下四点:

  • Oracle 23ai 新特性技术解读
  • Oracle 23ai 新特性应用实践
  • Oracle 23ai 新特性总结展望
  • Oracle 23ai 有哪些AI相关的功能或特性

由于时间的关系,我这里只有 20 分钟左右的分享时间,就大概聊了聊,也可能是第一次参加,难免过于激动和紧张,很多干货没来得及讲,这里将分享本次演讲的脑图,感兴趣的朋友可以来看看那。

聊聊 Oracle 23 ai 新特性、改变及本地化安装_By JiekeXu_20240510.png

Oracle 23ai free 版本地化安装指南

目前,free 版有三种安装方式,这里有单独有一篇文章讲解:Oracle 23ai free 版本地化安装指南

安装方式有如下图三种:

图片.png

Ai 向量新特性演示

CREATE TABLE test.docs (doc_id INT,doc_text CLOB,doc_vector VECTOR);
INSERT INTO test.docs VALUES (1,'Here is a simple example:Insert Vectors in a Database Table Using the INSERT Statement.', '[0,2,2,0,0]');
INSERT INTO test.docs VALUES (1,'Here is a simple example:Insert Vectors in a Database Table Using the INSERT Statement 2.', '[1,1,1,0,0]');
--要允许创建向量索引,必须启用 SGA 中存储的名为 "vector pool "的新内存区域。
--用于存储分层导航小世界 Hierarchical Navigable Small World(HNSW)矢量索引和所有相关元数据。
--它还用于加快反转平面文件(IVF)索引的创建速度,以及对带有 IVF 索引的基础表进行 DML 操作的速度。
ALTER SYSTEM SET vector_memory_size=500M SCOPE=spfile;
CREATE VECTOR INDEX test.vector_index_docvector ON test.docs (DOC_VECTOR) ORGANIZATION INMEMORY NEIGHBOR GRAPH;
复制

schema 级别新特性演示

export ORACLE_PDB_SID=FREEPDB1
sqlplus / as sysdba
select sysdate;
alter session set container=freepdb1;
set line 345 pages 345
col name for a50
select file#,status,name,bytes/1024/1024 MB from v$datafile;
create user JiekeXu identified by Oracle23Ai default tablespace JiekeXu;
grant connect,resource,unlimited tablespace to JiekeXu;

--创建只读用户
create user JiekeXu_sel identified by Oracle23Ai default tablespace users;
grant connect to JiekeXu_sel;
--创建表
CREATE TABLE IF NOT EXISTS JiekeXu.Customers (ID NUMBER(10), Name VARCHAR2(100)); 
insert into  JiekeXu.Customers values(1,'jiekexu'),(2,'modb'),(3,'DBA'); 
commit;
drop table IF EXISTS JiekeXu.Customers;
drop table IF EXISTS JiekeXu.Customers; 

--赋权 schema 级别
grant select any table on schema JIEKEXU to JIEKEXU_SEL;
复制

开发者角色

DB_DEVELOPER_ROLE 角色提供了应用程序开发人员所需的大部分系统权限、对象权限、预定义角色、PL/SQL 包权限和跟踪权限。

应用程序开发人员需要大量这些权限来设计、开发和部署应用程序。Oracle 建议授予应用程序开发人员 DB_DEVELOPER_ROLE 角色,而不是单独授予这些权限或授予用户 DBA 角色。授予应用程序用户 DB_DEVELOPER_ROLE 角色不仅符合最小权限原则并确保开发环境的更高安全性,而且还便于管理应用程序用户的角色授予和撤销。DB_DEVELOPER_ROLE 角色可在 CDB 或 PDB 中使用。请勿修改 DB_DEVELOPER_ROLE。

示例:

GRANT DB_DEVELOPER_ROLE TO test;
SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE='TEST';
REVOKE DB_DEVELOPER_ROLE FROM TEST;
复制

查看 DB_DEVELOPER_ROLE 角色都有哪些权限。

set serveroutput on format wrapped;
DECLARE
    procedure printRolePrivileges(
      p_role             in varchar2,
      p_spaces_to_indent in number) IS
      v_child_roles   DBMS_SQL.VARCHAR2_TABLE;
      v_system_privs  DBMS_SQL.VARCHAR2_TABLE;
      v_table_privs   DBMS_SQL.VARCHAR2_TABLE;
      v_indent_spaces varchar2(2048);
    BEGIN
      -- Indentation for nested privileges via granted roles.
      for space in 1..p_spaces_to_indent LOOP
        v_indent_spaces := v_indent_spaces || ' ';
      end LOOP;
      -- Get the system privileges granted to p_role
      select PRIVILEGE bulk collect into v_system_privs
      from DBA_SYS_PRIVS
      where GRANTEE = p_role
      order by PRIVILEGE;

      -- Print the system privileges granted to p_role
      for privind in 1..v_system_privs.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE(
          v_indent_spaces || 'System priv: ' || v_system_privs(privind));
      END LOOP;

      -- Get the object privileges granted to p_role
      select PRIVILEGE || ' ' || OWNER || '.' || TABLE_NAME
        bulk collect into v_table_privs
      from DBA_TAB_PRIVS
      where GRANTEE = p_role
      order by TABLE_NAME asc;

      -- Print the object privileges granted to p_role
      for tabprivind in 1..v_table_privs.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE(
          v_indent_spaces || 'Object priv: ' || v_table_privs(tabprivind));
      END LOOP;

      -- get all roles granted to p_role
      select GRANTED_ROLE bulk collect into v_child_roles
      from DBA_ROLE_PRIVS
      where GRANTEE = p_role
      order by GRANTED_ROLE asc;

      -- Print all roles granted to p_role and handle child roles recursively.
      for roleind in 1..v_child_roles.COUNT LOOP
        -- Print child role
        DBMS_OUTPUT.PUT_LINE(
         v_indent_spaces || 'Role priv: ' || v_child_roles(roleind));

        -- Print privileges for the child role recursively. Pass 2 additional
        -- spaces to illustrate these privileges belong to a child role.
        printRolePrivileges(v_child_roles(roleind), p_spaces_to_indent + 2);
      END LOOP;

      EXCEPTION
        when OTHERS then
          DBMS_OUTPUT.PUT_LINE('Got exception: ' || SQLERRM );

    END printRolePrivileges;

BEGIN
    printRolePrivileges('DB_DEVELOPER_ROLE', 0);
END;
/

System priv: CREATE CUBE
System priv: CREATE CUBE BUILD PROCESS
System priv: CREATE CUBE DIMENSION
System priv: CREATE DIMENSION
System priv: CREATE DOMAIN
System priv: CREATE JOB
System priv: CREATE MINING MODEL
System priv: CREATE MLE
System priv: CREATE SESSION
System priv: DEBUG CONNECT SESSION
System priv: EXECUTE DYNAMIC MLE
System priv: FORCE TRANSACTION
System priv: ON COMMIT REFRESH
Object priv: SELECT SYS.DBA_PENDING_TRANSACTIONS
Object priv: EXECUTE SYS.DBMS_REDACT
Object priv: EXECUTE SYS.DBMS_RLS
Object priv: EXECUTE SYS.DBMS_TSDP_MANAGE
Object priv: EXECUTE SYS.DBMS_TSDP_PROTECT
Object priv: EXECUTE SYS.JAVASCRIPT
Object priv: READ SYS.V_$PARAMETER
Object priv: READ SYS.V_$STATNAME
Role priv: CTXAPP
  System priv: CREATE SEQUENCE
  Object priv: EXECUTE CTXSYS.CTX_ANL
  Object priv: EXECUTE CTXSYS.CTX_DDL
  Object priv: EXECUTE CTXSYS.CTX_ENTITY
  Object priv: EXECUTE CTXSYS.CTX_OUTPUT
  Object priv: EXECUTE CTXSYS.CTX_THES
  Object priv: EXECUTE CTXSYS.CTX_ULEXER
  Object priv: INSERT CTXSYS.DR$DICTIONARY
  Object priv: DELETE CTXSYS.DR$DICTIONARY
  Object priv: SELECT CTXSYS.DR$DICTIONARY
  Object priv: UPDATE CTXSYS.DR$DICTIONARY
  Object priv: INSERT CTXSYS.DR$THS
  Object priv: INSERT CTXSYS.DR$THS_BT
  Object priv: INSERT CTXSYS.DR$THS_FPHRASE
  Object priv: UPDATE CTXSYS.DR$THS_PHRASE
  Object priv: INSERT CTXSYS.DR$THS_PHRASE
  Object priv: EXECUTE CTXSYS.DRIENTL
  Object priv: EXECUTE CTXSYS.DRITHSL
Role priv: RESOURCE
  System priv: CREATE ANALYTIC VIEW
  System priv: CREATE ATTRIBUTE DIMENSION
  System priv: CREATE CLUSTER
  System priv: CREATE HIERARCHY
  System priv: CREATE INDEXTYPE
  System priv: CREATE MATERIALIZED VIEW
  System priv: CREATE OPERATOR
  System priv: CREATE PROCEDURE
  System priv: CREATE PROPERTY GRAPH
  System priv: CREATE SEQUENCE
  System priv: CREATE SYNONYM
  System priv: CREATE TABLE
  System priv: CREATE TRIGGER
  System priv: CREATE TYPE
  System priv: CREATE VIEW
  Role priv: SODA_APP
    Object priv: EXECUTE XDB.DBMS_SODA_ADMIN
    Object priv: EXECUTE XDB.DBMS_SODA_USER_ADMIN
    Object priv: READ XDB.JSON$USER_COLLECTION_METADATA

PL/SQL procedure successfully completed.
复制

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
————————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————
20230831151f2d4bba0447a59a865a8b44fbc41e.png

最后修改时间:2024-05-11 14:13:47
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

目录
  • 前 言
  • 正 文
    • Oracle 23ai free 版本地化安装指南
    • Ai 向量新特性演示
    • schema 级别新特性演示
    • 开发者角色