天天看點

SQLite 授權動作編碼(AuthorizerAction Codes)

該文章主要與注冊授權回調函數相關:sqlite3_set_authorizer

詳細的調用方式,請參考其他的章節!!

/*******************************************3rd ************ 4th ***********/

#define SQLITE_CREATE_INDEX          1  /* Index Name      Table Name      */

#define SQLITE_CREATE_TABLE          2  /* Table Name      NULL            */

#define SQLITE_CREATE_TEMP_INDEX     3  /* Index Name      Table Name      */

#define SQLITE_CREATE_TEMP_TABLE     4  /* Table Name      NULL            */

#define SQLITE_CREATE_TEMP_TRIGGER   5   /*Trigger Name    Table Name      */

#define SQLITE_CREATE_TEMP_VIEW      6  /* View Name       NULL            */

#define SQLITE_CREATE_TRIGGER        7  /* Trigger Name    Table Name      */

#define SQLITE_CREATE_VIEW           8  /* View Name       NULL            */

#define SQLITE_DELETE                9   /* Table Name      NULL            */

#define SQLITE_DROP_INDEX           10  /* Index Name      Table Name      */

#define SQLITE_DROP_TABLE           11  /* Table Name      NULL            */

#define SQLITE_DROP_TEMP_INDEX      12  /* Index Name      Table Name      */

#define SQLITE_DROP_TEMP_TABLE      13  /* Table Name      NULL            */

#define SQLITE_DROP_TEMP_TRIGGER    14  /* Trigger Name    Table Name      */

#define SQLITE_DROP_TEMP_VIEW       15  /* View Name       NULL            */

#define SQLITE_DROP_TRIGGER         16  /* Trigger Name    Table Name      */

#define SQLITE_DROP_VIEW            17  /* View Name       NULL            */

#define SQLITE_INSERT               18   /* Table Name      NULL            */

#define SQLITE_PRAGMA               19   /* Pragma Name     1st arg or NULL */

#define SQLITE_READ                 20   /* Table Name      Column Name     */

#define SQLITE_SELECT               21   /* NULL            NULL            */

#define SQLITE_TRANSACTION          22  /* Operation       NULL            */

#define SQLITE_UPDATE               23   /* Table Name      Column Name     */

#define SQLITE_ATTACH               24   /* Filename        NULL            */

#define SQLITE_DETACH               25   /* Database Name   NULL            */

#define SQLITE_ALTER_TABLE          26  /* Database Name   Table Name      */

#define SQLITE_REINDEX              27   /* Index Name      NULL            */

#define SQLITE_ANALYZE              28   /* Table Name      NULL            */

#define SQLITE_CREATE_VTABLE        29  /* Table Name      ModuleName     */

#define SQLITE_DROP_VTABLE          30  /* Table Name      ModuleName     */

#define SQLITE_FUNCTION             31   /* NULL            Function Name   */

#define SQLITE_SAVEPOINT            32  /* Operation       SavepointName  */

#define SQLITE_COPY                  0   /* No longer used */

#define SQLITE_RECURSIVE            33  /* NULL            NULL            */

sqlite3_set_authorizer接口注冊一個回調函數,該回調函數将被調用去授權執行SQL語句。回調函數的第二個參數是一個整型,指定了那些操作是被授權的,這些整型的動作編碼(integer action codes)是回調函數可以通過的。

這些動作編号值指定了哪種操作是被允許的。第三和第四個參數是否為NULL,還是其他的參數,完全依賴于第二個參數的設定,第五個參數是資料庫的名稱(main,temp,或者其他)if applicable.第六個參數嘗試通路的内置觸發器或者視圖,當然如果為NULL,表示嘗試通路來自于最進階的SQL編碼(The 6th parameter to the authorizer callback is the nameof the inner-most trigger or view that is responsible for the access attempt orNULL if this access attempt is directly from top-level SQL code).

    本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1950464,如需轉載請自行聯系原作者