编译期授权回调Compile-Time Authorization Callbacks

编译期授权回调Compile-Time Authorization Callbacks,第1张

概述摘自: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 ); 该函数将注册一个授权回调函数

摘自:https://www.sqlite.org/c3ref/set_authorizer.HTML

int sqlite3_set_authorizer(

sqlite3*,

int(*xAuth)(voID*,int,const char*,const char*),

voID *pUserData

);

该函数将注册一个授权的回调函数到一个指定的数据库句柄,第一个参数指定了数据库句柄。当sql 语句被sqlite3_prepare或者她的变体sqlite3_prepare_v2,sqlite3_prepare16sqlite3_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的第三个函数设置进去。第二个函数是一个整型的 *** 作码,指定了哪些 *** 作是被允许的。第三到第六个参数是一个以零为结束符的字符串,这三个参数包含了哪些额外的 *** 作细节是被授权允许的。

总结

以上是内存溢出为你收集整理的编译期授权回调Compile-Time Authorization Callbacks全部内容,希望文章能够帮你解决编译期授权回调Compile-Time Authorization Callbacks所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存