• 【Oracle系列1】Oracle 的connect权限和create session的区别


    【Oracle系列1】Oracle 的connect角色和create session权限的区别

    背景

    oracle数据库新建用户之后是无法登录的,需要赋予connect角色或者create session权限。

    注意:

    connect是角色不是权限,create session是权限不是角色。角色是权限的集合。而create session权限就是connect角色所拥有的权限之一。

    如果不能赋予connect角色,单给新建的用户赋予create session的权限也是能让其登录的。

    如何赋予角色或权限,语法是相同的

    # 赋予角色
    grant connect to YOUR_USER
    
    # 赋予权限
    grant create session to YOUR_USER
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实验

    1、如果用户没有登录权限,报的错是:
    ERROR:
    ORA-01045: user TEST01 lacks CREATE SESSION privilege; logon denied
    
    • 1
    • 2

    图形工具一般也是类似的信息

    在这里插入图片描述

    2、赋予create session 之后

    执行如下之后

    grant create session to YOUR_USER
    
    • 1

    重新登录,可登录

    root@dc1282a6eb67:/# sqlplus 
    
    SQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 27 17:53:48 2022
    
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Enter user-name: test01
    Enter password: 
    
    Connected to:
    Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production
    
    SQL> 
    SQL> show user
    USER is "TEST01"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    附录

    如何知道Oracle都有哪些内置的角色、内置的权限、角色下有什么权限?请看接下来本系列。

    PS: connect 角色都有什么权限?

    使用sys账号登录执行 select * from role_sys_privs where role='CONNECT'; (其他账号可能不一定能查出来)

    可以看到除了create session外还有 set container

    在这里插入图片描述

  • 相关阅读:
    【Android进阶】2、Android 的 MVC 设计模式
    DataGrip操作Oracle
    SSM 校园兼职平台
    程序员与动漫
    线性代数
    公司如何禁止拷贝文件
    「PAT乙级真题解析」Basic Level 1079 延迟的回文数 (问题分析+完整步骤+伪代码描述+提交通过代码)
    stm32——hal库学习笔记(定时器)
    7. Linux进程环境
    第9章、内存模型和名称空间
  • 原文地址:https://blog.csdn.net/w8y56f/article/details/128067499