返回顶部
首页 > 资讯 > 数据库 >SQLite 编译期授权回调Compile-Time Aut
  • 236
分享到

SQLite 编译期授权回调Compile-Time Aut

2024-04-02 19:04:59 236人浏览 独家记忆
摘要

原文:https://www.sqlite.org/c3ref/set_authorizer.html int sqlite3_set_authorizer( sqlite3*,  int(*xAuth)(

原文:https://www.sqlite.org/c3ref/set_authorizer.html

 
int sqlite3_set_authorizer(
 sqlite3*,
  int(*xAuth)(void*,int,const char*,const char*,const char*,const char*),
 void *pUserData
);
该函数将注册一个授权的回调函数到一个指定的数据库句柄,第一个参数指定了数据库句柄。当SQL 语句被sqlite3_prepare或者她的变体sqlite3_prepare_v2,sqlite3_prepare16,sqlite3_prepare166_v2等函数编译的时候,就会调用该回调函数。在不同的编译点上,执行不同的操作,授权回调函数将被执行,并且返回当前的操作是否合法(At various points during the compilation process,as logic is beinGCreated to perfORM various actions ,the authorizer callback is invoked to seeif those actions are allowed).如果回调函数返回SQLITE_OK,表示允许执行该操作,SQLITE_IGNORE表示不允许该指定的操作,但是允许编译,SQLITE_DENY将会返回一个错误,并且拒绝该操作的执行。如果回调函数返回其他的值,而不是上面三种类型的其中一种,sqlite3_prepare_v2函数将会触发一个错误信息(then the sqlite3_prepare_v2() or equivalent call that triggered theauthorizer will fail with an error message.)


SQLITE_OK 允许SQL执行
SQLITE_DENY 拒绝SQL执行
SQLITE_IGNORE 允许SQL执行,但是尝试读取记录集会返回NULL,尝试写入记录集会被忽略

授权回调函数的第一个参数,将会由sqlite3_set_authorizer的第三个函数设置进去。第二个函数是一个整型的操作码,指定了哪些操作是被允许的。第三到第六个参数是一个以零为结束符的字符串,这三个参数包含了哪些额外的操作细节是被授权允许的。


您可能感兴趣的文档:

--结束END--

本文标题: SQLite 编译期授权回调Compile-Time Aut

本文链接: https://lsjlt.com/news/37790.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作