Oracle系列1Oracle 的connect权限和create session的区别
Posted 石头wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle系列1Oracle 的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、如果用户没有登录权限,报的错是:
ERROR:
ORA-01045: user TEST01 lacks CREATE SESSION privilege; logon denied
图形工具一般也是类似的信息
2、赋予create session 之后
执行如下之后
grant create session to YOUR_USER
重新登录,可登录
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"
附录
如何知道Oracle都有哪些内置的角色、内置的权限、角色下有什么权限?请看接下来本系列。
PS: connect 角色都有什么权限?
使用sys账号登录执行 select * from role_sys_privs where role='CONNECT';
(其他账号可能不一定能查出来)
可以看到除了create session外还有 set container
以上是关于Oracle系列1Oracle 的connect权限和create session的区别的主要内容,如果未能解决你的问题,请参考以下文章