connect 和create session的区别

connect实际上是oracle数据库中的一种角色,他包含了create session等权限。

SYS@PRODCDB>select role,con_id from cdb_roles where role='CONNECT';

ROLE                CON_ID
--------------- ----------
CONNECT                  3
CONNECT                  1
CONNECT                  4

SYS@PRODCDB>select role,privilege from role_sys_Privs where role='CONNECT';

ROLE            PRIVILEGE
--------------- ----------------------------------------
CONNECT         SET CONTAINER
CONNECT         CREATE SESSION

创建用户并授予connect权限

SYS@PRODCDB>create user oracle identified by oracle;

User created.

SYS@PRODCDB>grant connect to oracle;

Grant succeeded.

SYS@PRODCDB>select grantee,granted_role,con_id from cdb_role_privs where grantee='ORACLE';

GRANTEE                      GRANTED_     CON_ID
---------------------------- -------- ----------
ORACLE                       CONNECT           1

授予用户create session权限

SYS@PRODCDB>grant create session to oracle;

Grant succeeded.

SYS@PRODCDB>select grantee,privilege,con_id from cdb_sys_privs where grantee='ORACLE';

GRANTEE                      PRIVILEGE                                    CON_ID
---------------------------- ---------------------------------------- ----------
ORACLE                       CREATE SESSION                                    1

SYS@PRODCDB>

提供的参考引用未涉及“表缺少创建会话问题的解决方案”相关内容,无法根据这些引用为你提供该问题的解决办法。不过,一般来说,表缺少创建会话问题可能出现在数据库操作场景中,以下以常见的关系型数据库 MySQL 为例给出可能的解决思路代码示例: 若问题是在创建数据库会话时,发现表未正确创建,可以检查 SQL 语句的语法是否正确。以下是一个创建简单表会话示例: ```sql -- 创建数据库 CREATE DATABASE IF NOT EXISTS testdb; -- 使用数据库 USE testdb; -- 创建表 CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT ); -- 插入数据会话示例 INSERT INTO users (name, age) VALUES ('John', 25); ``` 如果是表创建成功,但在后续会话操作中出现问题,可能是权限不足。需要确保用户有对表进行操作的权限,示例代码如下: ```sql -- 授予用户对指定表的所有权限 GRANT ALL PRIVILEGES ON testdb.users TO 'your_username'@'your_host'; FLUSH PRIVILEGES; ``` 若问题出现在程序代码中,以 Python `mysql-connector-python` 库为例,以下是一个创建会话并操作表的示例: ```python import mysql.connector # 建立数据库连接会话 mydb = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="testdb" ) # 创建游标 mycursor = mydb.cursor() # 插入数据 sql = "INSERT INTO users (name, age) VALUES (%s, %s)" val = ("Jane", 30) mycursor.execute(sql, val) # 提交更改 mydb.commit() print(mycursor.rowcount, "record inserted.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值