From 4189e53a881e52de0945375a72b8748143c5bd13 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 4 Feb 2013 19:20:12 +0900 Subject: initial commit --- doc/includes/sqlite3/authorizer.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 doc/includes/sqlite3/authorizer.py (limited to 'doc/includes/sqlite3/authorizer.py') diff --git a/doc/includes/sqlite3/authorizer.py b/doc/includes/sqlite3/authorizer.py new file mode 100644 index 0000000..0176c6c --- /dev/null +++ b/doc/includes/sqlite3/authorizer.py @@ -0,0 +1,26 @@ +from pysqlite2 import dbapi2 as sqlite3 + +def authorizer_callback(action, arg1, arg2, dbname, source): + if action != sqlite3.SQLITE_SELECT: + return sqlite3.SQLITE_DENY + if arg1 == "private_table": + return sqlite3.SQLITE_DENY + return sqlite3.SQLITE_OK + +con = sqlite3.connect(":memory:") +con.executescript(""" + create table public_table(c1, c2); + create table private_table(c1, c2); + """) +con.set_authorizer(authorizer_callback) + +try: + con.execute("select * from private_table") +except sqlite3.DatabaseError, e: + print "SELECT FROM private_table =>", e.args[0] # access ... prohibited + +try: + con.execute("insert into public_table(c1, c2) values (1, 2)") +except sqlite3.DatabaseError, e: + print "DML command =>", e.args[0] # access ... prohibited + -- cgit v1.2.3