c++ - 如何确保 SqLite 中的只读事务?

标签 c++ sql c sqlite

我有公共(public)接口(interface),允许人们通过输入 sql 命令与数据库进行交互。但是,我不希望他们以任何方式更改数据库(如果可能的话,不访问某些表)。据我了解,SQLite 没有用户的概念,那么我该如何实现这一点呢?

最佳答案

如果查询中没有应用程序定义的sql函数,该函数会间接修改数据库(例如:SELECT eval('DELETE FROM t1') FROM t2;) ,然后使用sqlite3_stmt_readonly来判断准备好的sql语句是否写入数据库,否则可以尝试打开另一个read_only数据库连接handler(SQLITE_OPEN_READONLY) 将用于 read_only 访问。

关于c++ - 如何确保 SqLite 中的只读事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370577/

相关文章:

c++ - 如何检查一个字符串是否表示一个正的非零整数?

c++ - 错误 : binary '<<' : no operator found which takes a right-hand operand of type 'std::string'

mysql - 如何在 MySQL 中使用事务来避免 "lost updates"?

php - 查询表中的重复条目

c - 文字数组或复合的使用

c - PDCurses 无法在 Windows 上编译

c++ - 在 C++11 循环范围内使用对指针的引用作为序列

c# - 这个特定的别名 SQL 列是否存在问题?

c - 带有可变参数的 Swift 和 C 回调

c++ - 在一行中定义和初始化 STL 常量