mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Documentation updates for the new SQLITE_FUNCTION authorization. (CVS 3366)
FossilOrigin-Name: e029637e54e190c89206725a99e1ee7db6c23804
This commit is contained in:
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
|||||||
C Enhance\sthe\ssqlite3_set_authorizer()\scallback\sso\sthat\sit\sprovides\scallbacks\non\seach\sSQL\sfunction\sthat\sis\sinvoked.\s(CVS\s3365)
|
C Documentation\supdates\sfor\sthe\snew\sSQLITE_FUNCTION\sauthorization.\s(CVS\s3366)
|
||||||
D 2006-08-24T14:59:46
|
D 2006-08-24T15:18:25
|
||||||
F Makefile.in 8e7f9ecebab2c6e0f3db20ff129a8f9405ab64f8
|
F Makefile.in 8e7f9ecebab2c6e0f3db20ff129a8f9405ab64f8
|
||||||
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
|
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
|
||||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
||||||
@ -50,7 +50,7 @@ F src/complete.c 7d1a44be8f37de125fcafd3d3a018690b3799675
|
|||||||
F src/date.c cd2bd5d1ebc6fa12d6312f69789ae5b0a2766f2e
|
F src/date.c cd2bd5d1ebc6fa12d6312f69789ae5b0a2766f2e
|
||||||
F src/delete.c 804384761144fe1a5035b99f4bd7d706976831bd
|
F src/delete.c 804384761144fe1a5035b99f4bd7d706976831bd
|
||||||
F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b
|
F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b
|
||||||
F src/expr.c fb53fb9ddbfb2868bf148031adde2290de0fd65a
|
F src/expr.c 0546cc60f08c426d96092dea0789d085aed3580e
|
||||||
F src/func.c dd9cea8ed3246d7a4c49fd01034d470d5702b8b0
|
F src/func.c dd9cea8ed3246d7a4c49fd01034d470d5702b8b0
|
||||||
F src/hash.c 449f3d6620193aa557f5d86cbc5cc6b87702b185
|
F src/hash.c 449f3d6620193aa557f5d86cbc5cc6b87702b185
|
||||||
F src/hash.h 1b3f7e2609141fd571f62199fc38687d262e9564
|
F src/hash.h 1b3f7e2609141fd571f62199fc38687d262e9564
|
||||||
@ -344,7 +344,7 @@ F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0
|
|||||||
F www/autoinc.tcl b357f5ba954b046ee35392ce0f884a2fcfcdea06
|
F www/autoinc.tcl b357f5ba954b046ee35392ce0f884a2fcfcdea06
|
||||||
F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e
|
F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e
|
||||||
F www/capi3.tcl 7a7cc225fe02eb7ab861a6019b08baa0014409e1
|
F www/capi3.tcl 7a7cc225fe02eb7ab861a6019b08baa0014409e1
|
||||||
F www/capi3ref.tcl fab3d77e72fcea574e0fd52e6374d75143792f1c
|
F www/capi3ref.tcl 3df3e9703aca711dcdbe6de94bd93456abf75078
|
||||||
F www/changes.tcl 7bbcf947aa71d4760cbd286ba176466e729c974f
|
F www/changes.tcl 7bbcf947aa71d4760cbd286ba176466e729c974f
|
||||||
F www/common.tcl 14d121c28532ad20c3e349caa4db708b0b822083
|
F www/common.tcl 14d121c28532ad20c3e349caa4db708b0b822083
|
||||||
F www/compile.tcl 276546d7eb445add5a867193bbd80f6919a6b084
|
F www/compile.tcl 276546d7eb445add5a867193bbd80f6919a6b084
|
||||||
@ -388,7 +388,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
|
|||||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
||||||
P 5696e0cb771ea62df6f91cb03dfc428af1441e9e
|
P 4547c81f7da29b1490c6eba8d9c333218c5cb88f
|
||||||
R adbd010d3035a48a51b9cccec0ffd93d
|
R 4e02aebf9882923b83a6bdd556e1b24b
|
||||||
U drh
|
U drh
|
||||||
Z e780ba3f47ab009dda8d768d0c7835f6
|
Z 0629764da6fb062720dc2a83a77f2d2f
|
||||||
|
@ -1 +1 @@
|
|||||||
4547c81f7da29b1490c6eba8d9c333218c5cb88f
|
e029637e54e190c89206725a99e1ee7db6c23804
|
@ -12,7 +12,7 @@
|
|||||||
** This file contains routines used for analyzing expressions and
|
** This file contains routines used for analyzing expressions and
|
||||||
** for generating VDBE code that evaluates expressions in SQLite.
|
** for generating VDBE code that evaluates expressions in SQLite.
|
||||||
**
|
**
|
||||||
** $Id: expr.c,v 1.267 2006/08/24 14:59:46 drh Exp $
|
** $Id: expr.c,v 1.268 2006/08/24 15:18:25 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -1180,6 +1180,7 @@ static int nameResolverStep(void *pArg, Expr *pExpr){
|
|||||||
}else{
|
}else{
|
||||||
is_agg = pDef->xFunc==0;
|
is_agg = pDef->xFunc==0;
|
||||||
}
|
}
|
||||||
|
#ifndef SQLITE_OMIT_AUTHORIZER
|
||||||
if( pDef ){
|
if( pDef ){
|
||||||
auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
|
auth = sqlite3AuthCheck(pParse, SQLITE_FUNCTION, 0, pDef->zName, 0);
|
||||||
if( auth!=SQLITE_OK ){
|
if( auth!=SQLITE_OK ){
|
||||||
@ -1192,6 +1193,7 @@ static int nameResolverStep(void *pArg, Expr *pExpr){
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if( is_agg && !pNC->allowAgg ){
|
if( is_agg && !pNC->allowAgg ){
|
||||||
sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
|
sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId);
|
||||||
pNC->nErr++;
|
pNC->nErr++;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
set rcsid {$Id: capi3ref.tcl,v 1.42 2006/08/12 14:38:47 drh Exp $}
|
set rcsid {$Id: capi3ref.tcl,v 1.43 2006/08/24 15:18:25 drh Exp $}
|
||||||
source common.tcl
|
source common.tcl
|
||||||
header {C/C++ Interface For SQLite Version 3}
|
header {C/C++ Interface For SQLite Version 3}
|
||||||
puts {
|
puts {
|
||||||
@ -1198,29 +1198,52 @@ int sqlite3_set_authorizer(
|
|||||||
#define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */
|
#define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */
|
||||||
#define SQLITE_REINDEX 27 /* Index Name NULL */
|
#define SQLITE_REINDEX 27 /* Index Name NULL */
|
||||||
#define SQLITE_ANALYZE 28 /* Table Name NULL */
|
#define SQLITE_ANALYZE 28 /* Table Name NULL */
|
||||||
|
#define SQLITE_CREATE_VTABLE 29 /* Table Name Module Name */
|
||||||
|
#define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */
|
||||||
|
#define SQLITE_FUNCTION 31 /* Function Name NULL */
|
||||||
|
|
||||||
#define SQLITE_DENY 1 /* Abort the SQL statement with an error */
|
#define SQLITE_DENY 1 /* Abort the SQL statement with an error */
|
||||||
#define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */
|
#define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */
|
||||||
} {
|
} {
|
||||||
This routine registers a callback with the SQLite library. The
|
This routine registers a callback with the SQLite library. The
|
||||||
callback is invoked (at compile-time, not at run-time) for each
|
callback is invoked by sqlite3_prepare() to authorize various
|
||||||
attempt to access a column of a table in the database. The callback should
|
operations against the database. The callback should
|
||||||
return SQLITE_OK if access is allowed, SQLITE_DENY if the entire
|
return SQLITE_OK if access is allowed, SQLITE_DENY if the entire
|
||||||
SQL statement should be aborted with an error and SQLITE_IGNORE
|
SQL statement should be aborted with an error and SQLITE_IGNORE
|
||||||
if the column should be treated as a NULL value.
|
if the operation should be treated as a no-op.
|
||||||
|
|
||||||
|
Each database connection have at most one authorizer registered
|
||||||
|
at a time one time. Each call
|
||||||
|
to sqlite3_set_authorizer() overrides the previous authorizer.
|
||||||
|
Setting the callback to NULL disables the authorizer.
|
||||||
|
|
||||||
The second argument to the access authorization function will be one
|
The second argument to the access authorization function will be one
|
||||||
of the defined constants shown. These values signify what kind of operation
|
of the defined constants shown. These values signify what kind of operation
|
||||||
is to be authorized. The 3rd and 4th arguments to the authorization
|
is to be authorized. The 3rd and 4th arguments to the authorization
|
||||||
function will be arguments or NULL depending on which of the following
|
function will be arguments or NULL depending on which of the
|
||||||
codes is used as the second argument. The 5th argument is the name
|
codes is used as the second argument. For example, if the the
|
||||||
of the database ("main", "temp", etc.) if applicable. The 6th argument
|
2nd argument code is SQLITE_READ then the 3rd argument will be the name
|
||||||
|
of the table that is being read from and the 4th argument will be the
|
||||||
|
name of the column that is being read from. Or if the 2nd argument
|
||||||
|
is SQLITE_FUNCTION then the 3rd argument will be the name of the
|
||||||
|
function that is being invoked and the 4th argument will be NULL.
|
||||||
|
|
||||||
|
The 5th argument is the name
|
||||||
|
of the database ("main", "temp", etc.) where applicable. The 6th argument
|
||||||
is the name of the inner-most trigger or view that is responsible for
|
is the name of the inner-most trigger or view that is responsible for
|
||||||
the access attempt or NULL if this access attempt is directly from
|
the access attempt or NULL if this access attempt is directly from
|
||||||
input SQL code.
|
input SQL code.
|
||||||
|
|
||||||
The return value of the authorization function should be one of the
|
The return value of the authorization function should be one of the
|
||||||
constants SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE.
|
constants SQLITE_OK, SQLITE_DENY, or SQLITE_IGNORE. A return of
|
||||||
|
SQLITE_OK means that the operation is permitted and that
|
||||||
|
sqlite3_prepare() can proceed as normal.
|
||||||
|
A return of SQLITE_DENY means that the sqlite3_prepare()
|
||||||
|
should fail with an error. A return of SQLITE_IGNORE causes the
|
||||||
|
sqlite3_prepare() to continue as normal but the requested
|
||||||
|
operation is silently converted into a no-op. A return of SQLITE_IGNORE
|
||||||
|
in response to an SQLITE_READ or SQLITE_FUNCTION causes the column
|
||||||
|
being read or the function being invoked to return a NULL.
|
||||||
|
|
||||||
The intent of this routine is to allow applications to safely execute
|
The intent of this routine is to allow applications to safely execute
|
||||||
user-entered SQL. An appropriate callback can deny the user-entered
|
user-entered SQL. An appropriate callback can deny the user-entered
|
||||||
|
Reference in New Issue
Block a user