Changeset: c7cd5f8860d4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c7cd5f8860d4 Added Files: sql/test/Users/Tests/table_privs.SQL.py Removed Files: sql/test/Users/Tests/privs.reqtests sql/test/Users/Tests/privs.sql sql/test/Users/Tests/privs.test sql/test/Users/Tests/test_privs_p1.SQL.py sql/test/Users/Tests/test_privs_p1.reqtests sql/test/Users/Tests/test_privs_p2.SQL.py sql/test/Users/Tests/test_privs_p2.reqtests Modified Files: sql/test/Users/Tests/All Branch: default Log Message:
Clean up and merged "privs", "test_privs_p1" and "test_privs_p2" into "table_privs" diffs (207 lines): diff --git a/sql/test/Users/Tests/All b/sql/test/Users/Tests/All --- a/sql/test/Users/Tests/All +++ b/sql/test/Users/Tests/All @@ -1,10 +1,8 @@ role table +table_privs schema unknown_user -privs -test_privs_p1 -test_privs_p2 privs2 test_privs2_p1 test_privs2_p2 diff --git a/sql/test/Users/Tests/privs.reqtests b/sql/test/Users/Tests/privs.reqtests deleted file mode 100644 --- a/sql/test/Users/Tests/privs.reqtests +++ /dev/null @@ -1,1 +0,0 @@ -schema diff --git a/sql/test/Users/Tests/privs.sql b/sql/test/Users/Tests/privs.sql deleted file mode 100644 --- a/sql/test/Users/Tests/privs.sql +++ /dev/null @@ -1,9 +0,0 @@ -set schema "my_schema"; - -CREATE table test (i int, b bigint); - --- grant right to my_user not to my_user2 -GRANT SELECT on table test to my_user; -GRANT INSERT on table test to my_user; -GRANT UPDATE on table test to my_user; -GRANT DELETE on table test to my_user; diff --git a/sql/test/Users/Tests/privs.test b/sql/test/Users/Tests/privs.test deleted file mode 100644 --- a/sql/test/Users/Tests/privs.test +++ /dev/null @@ -1,18 +0,0 @@ -statement ok -set schema "my_schema" - -statement ok -CREATE table test (i int, b bigint) - -statement ok -GRANT SELECT on table test to my_user - -statement ok -GRANT INSERT on table test to my_user - -statement ok -GRANT UPDATE on table test to my_user - -statement ok -GRANT DELETE on table test to my_user - diff --git a/sql/test/Users/Tests/test_privs_p1.SQL.py b/sql/test/Users/Tests/table_privs.SQL.py rename from sql/test/Users/Tests/test_privs_p1.SQL.py rename to sql/test/Users/Tests/table_privs.SQL.py --- a/sql/test/Users/Tests/test_privs_p1.SQL.py +++ b/sql/test/Users/Tests/table_privs.SQL.py @@ -1,43 +1,37 @@ ### -# SELECT, INSERT, UPDATE, DELETE a table for which the USER has GRANTs (possible). +# Check that a user can SELECT, INSERT, UPDATE, DELETE a table (created by +# monetdb) for which the USER has GRANTs, while a user without those GRANTs +# cannot ### from MonetDBtesting.sqltest import SQLTestCase with SQLTestCase() as tc: - tc.connect(username="my_user", password="p1") - tc.execute("select * from test").assertSucceeded().assertRowCount(0) - tc.execute("insert into test values(1,1)").assertSucceeded().assertRowCount(1) - tc.execute("update test set b = 2").assertSucceeded().assertRowCount(1) - tc.execute("delete from test").assertSucceeded().assertRowCount(1) - -# import os, sys -# import pymonetdb - -# db=os.getenv("TSTDB") -# port=int(os.getenv("MAPIPORT")) -# client = pymonetdb.connect(database=db, port=port, autocommit=True, user='my_user', password='p1') -# cursor = client.cursor() - -# def error(msg): -# print(msg) -# sys.exit(-1) + tc.connect(username="monetdb", password="monetdb") + tc.execute("CREATE USER my_user with password 'p1' name 'User with role' schema sys;").assertSucceeded() + tc.execute("CREATE USER my_user2 with password 'p2' name 'User without role' schema sys;").assertSucceeded() + tc.execute("CREATE SCHEMA my_schema;").assertSucceeded() + tc.execute("CREATE table my_schema.test (i int, b bigint);").assertSucceeded() + tc.execute("GRANT SELECT on table my_schema.test to my_user;").assertSucceeded() + tc.execute("GRANT INSERT on table my_schema.test to my_user;").assertSucceeded() + tc.execute("GRANT UPDATE on table my_schema.test to my_user;").assertSucceeded() + tc.execute("GRANT DELETE on table my_schema.test to my_user;").assertSucceeded() -# nr=cursor.execute("select * from test") -# if nr != 0: -# error("expected empty result") - -# rowaffected=cursor.execute("insert into test values(1,1)") -# if rowaffected != 1: -# error("expected single insert") + tc.connect(username="my_user", password="p1") + tc.execute("select * from my_schema.test;").assertSucceeded().assertRowCount(0) + tc.execute("insert into my_schema.test values(1,1);").assertSucceeded().assertRowCount(1) + tc.execute("update my_schema.test set b = 2;").assertSucceeded().assertRowCount(1) + tc.execute("delete from my_schema.test;").assertSucceeded().assertRowCount(1) -# rowaffected=cursor.execute("update test set b = 2") -# if rowaffected != 1: -# error("expected single update") + tc.connect(username="my_user2", password="p2") + tc.execute("select * from my_schema.test;").assertFailed() + tc.execute("insert into my_schema.test values(1,1);").assertFailed() + tc.execute("update my_schema.test set b = 2;").assertFailed() + tc.execute("delete from my_schema.test;").assertFailed() -# rowaffected=cursor.execute("delete from test") -# if rowaffected != 1: -# error("expected single delete") + tc.connect(username="monetdb", password="monetdb") + tc.execute("drop table my_schema.test;").assertSucceeded() + tc.execute("drop schema my_schema;").assertSucceeded() + tc.execute("drop user my_user;").assertSucceeded() + tc.execute("drop user my_user2;").assertSucceeded() -# cursor.close() -# client.close() diff --git a/sql/test/Users/Tests/test_privs_p1.reqtests b/sql/test/Users/Tests/test_privs_p1.reqtests deleted file mode 100644 --- a/sql/test/Users/Tests/test_privs_p1.reqtests +++ /dev/null @@ -1,2 +0,0 @@ -schema -privs diff --git a/sql/test/Users/Tests/test_privs_p2.SQL.py b/sql/test/Users/Tests/test_privs_p2.SQL.py deleted file mode 100644 --- a/sql/test/Users/Tests/test_privs_p2.SQL.py +++ /dev/null @@ -1,54 +0,0 @@ -### -# SELECT, INSERT, UPDATE, DELETE a table for which the USER does *not* have GRANTs (not possible). -### - - -from MonetDBtesting.sqltest import SQLTestCase - -with SQLTestCase() as tc: - tc.connect(username="my_user2", password="p2") - tc.execute("select * from test").assertFailed() - tc.execute("insert into test values(1,1)").assertFailed() - tc.execute("update test set b = 2").assertFailed() - tc.execute("delete from test").assertFailed() - -# import os, sys -# import pymonetdb - - -# db=os.getenv("TSTDB") -# port=int(os.getenv("MAPIPORT")) -# client = pymonetdb.connect(database=db, port=port, autocommit=True, user='my_user2', password='p2') -# cursor = client.cursor() - -# err=0 -# try: -# nr=cursor.execute("select * from test") -# except: -# err=1 -# pass - -# try: -# rowaffected=cursor.execute("insert into test values(1,1)") -# except: -# err=err+2 -# pass - -# try: -# rowaffected=cursor.execute("update test set b = 2") -# except: -# err=err+4 -# pass - -# try: -# rowaffected=cursor.execute("delete from test") -# except: -# err=err+8 -# pass - -# if err != 15: -# print("User should have no access too this table\n", file=sys.stderr) -# sys.exit(-1) - -# cursor.close() -# client.close() diff --git a/sql/test/Users/Tests/test_privs_p2.reqtests b/sql/test/Users/Tests/test_privs_p2.reqtests deleted file mode 100644 --- a/sql/test/Users/Tests/test_privs_p2.reqtests +++ /dev/null @@ -1,2 +0,0 @@ -schema -privs _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list