设为首页 加入收藏

TOP

编译期授权回调Compile-Time Authorization Callbacks
2015-11-21 01:26:48 来源: 作者: 【 】 浏览:0
Tags:编译 授权 Compile-Time Authorization Callbacks
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的第三个函数设置进去。第二个函数是一个整型的操作码,指定了哪些操作是被允许的。第三到第六个参数是一个以零为结束符的字符串,这三个参数包含了哪些额外的操作细节是被授权允许的。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇dbca静默方式卸载数据库 下一篇NoSQL你知多少?

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: