Changeset: de7557cdfab5 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=de7557cdfab5 Added Files: sql/test/Users/Tests/columnRights.SQL.py sql/test/Users/Tests/columnRights.stable.err sql/test/Users/Tests/columnRights.stable.out sql/test/Users/Tests/grantMonetdb.SQL.py sql/test/Users/Tests/grantMonetdb.stable.err sql/test/Users/Tests/grantMonetdb.stable.out sql/test/Users/Tests/withGrantOption.SQL.py sql/test/Users/Tests/withGrantOption.stable.err sql/test/Users/Tests/withGrantOption.stable.out Modified Files: sql/test/Users/Tests/All Branch: default Log Message:
Some tests that show missing/incomplete functionality (no bug reports were created). diffs (truncated from 374 to 300 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 @@ -10,6 +10,8 @@ privs2 test_privs2_p1 test_privs2_p2 createSetUp +withGrantOption +columnRights changePasswordUser renameUser changeSchemaUser @@ -19,4 +21,5 @@ grantRevokeAndGrantAgain.Bug-3765 grantMonetdbToRegularUser.Bug-3771 grantMonetdbToSchemaOwner.Bug-3771 grantRole.Bug-3772 +grantMonetdb dropManyUsers.Bug-3764 diff --git a/sql/test/Users/Tests/columnRights.SQL.py b/sql/test/Users/Tests/columnRights.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/columnRights.SQL.py @@ -0,0 +1,23 @@ +### +# Grant SELECT and UPDATE to a user on two different columns. +# Verify the user can SELECT and UPDATE on the column he has permissions for. +# Verify that the user cannot SELECT nor UPDATE on the column it did not get permissions for. +### + +from util import sql_test_client + +sql_test_client('monetdb', 'monetdb', input = """\ +GRANT SELECT (price) ON library.orders TO alice; +GRANT UPDATE (name) ON library.orders TO alice; +""") + + + +sql_test_client('alice', 'alice', input = """\ +SELECT price FROM orders; +UPDATE orders SET name = 'book title goes here'; +SELECT name FROM orders; --insufficient rights +UPDATE orders SET price = 0; --insufficient rights +""") + + diff --git a/sql/test/Users/Tests/columnRights.stable.err b/sql/test/Users/Tests/columnRights.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/columnRights.stable.err @@ -0,0 +1,43 @@ +stderr of test 'columnRights` in directory 'sql/test/Users` itself: + + +# 11:31:51 > +# 11:31:51 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33621" "--set" "mapi_usock=/var/tmp/mtest-1284/.s.monetdb.33621" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 11:31:51 > + +# builtin opt gdk_dbpath = /home/vera/Desktop/MonetDB/BUILD/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 33621 +# cmdline opt mapi_usock = /var/tmp/mtest-1284/.s.monetdb.33621 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = yes +# cmdline opt gdk_debug = 536870922 + +# 11:31:52 > +# 11:31:52 > "/usr/bin/python2" "columnRights.SQL.py" "columnRights" +# 11:31:52 > + +MAPI = (alice) /var/tmp/mtest-3913/.s.monetdb.38861 +QUERY = SELECT name FROM orders; --insufficient rights +ERROR = !SELECT: access denied for alice to table 'library.orders' +MAPI = (alice) /var/tmp/mtest-3913/.s.monetdb.38861 +QUERY = UPDATE orders SET price = 0; --insufficient rights +ERROR = !UPDATE: insufficient privileges for user 'alice' to update table 'orders' on column 'price' + +# 11:31:52 > +# 11:31:52 > "Done." +# 11:31:52 > + diff --git a/sql/test/Users/Tests/columnRights.stable.out b/sql/test/Users/Tests/columnRights.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/columnRights.stable.out @@ -0,0 +1,44 @@ +stdout of test 'columnRights` in directory 'sql/test/Users` itself: + + +# 11:31:51 > +# 11:31:51 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33621" "--set" "mapi_usock=/var/tmp/mtest-1284/.s.monetdb.33621" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 11:31:51 > + +# MonetDB 5 server v11.22.0 +# This is an unreleased version +# Serving database 'mTests_sql_test_Users', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 3.746 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://buzu:33621/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-1284/.s.monetdb.33621 +# Start processing logs sql/sql_logs version 52200 +# Start reading the write-ahead log 'sql_logs/sql/log.10' +# Finished reading the write-ahead log 'sql_logs/sql/log.10' +# Finished processing logs sql/sql_logs +# MonetDB/SQL module loaded +# MonetDB/R module loaded + +Ready. + +# 11:31:52 > +# 11:31:52 > "/usr/bin/python2" "columnRights.SQL.py" "columnRights" +# 11:31:52 > + +#GRANT SELECT (price) ON library.orders TO alice; +#GRANT UPDATE (name) ON library.orders TO alice; +#QUERY = SELECT price FROM orders; +% orders # table_name +% price # name +% int # type +% 1 # length +#UPDATE orders SET name = 'book title goes here'; +[ 0 ] + +# 11:31:52 > +# 11:31:52 > "Done." +# 11:31:52 > + diff --git a/sql/test/Users/Tests/grantMonetdb.SQL.py b/sql/test/Users/Tests/grantMonetdb.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/grantMonetdb.SQL.py @@ -0,0 +1,20 @@ +### +# Assess that the admin can change the password of a user. +# Assess that a user can change its own password. +### + +from util import sql_test_client + +sql_test_client('monetdb', 'monetdb', input = """\ +GRANT monetdb TO alice; +""") + + +sql_test_client('alice', 'alice', input = """\ +SET ROLE monetdb; +CREATE USER may WITH PASSWORD 'may' NAME 'May' SCHEMA library; +GRANT ALL ON orders TO april; +GRANT monetdb TO april; +""") + + diff --git a/sql/test/Users/Tests/grantMonetdb.stable.err b/sql/test/Users/Tests/grantMonetdb.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/grantMonetdb.stable.err @@ -0,0 +1,37 @@ +stderr of test 'grantMonetdb` in directory 'sql/test/Users` itself: + + +# 10:44:50 > +# 10:44:50 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=32584" "--set" "mapi_usock=/var/tmp/mtest-30723/.s.monetdb.32584" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 10:44:50 > + +# builtin opt gdk_dbpath = /home/vera/Desktop/MonetDB/BUILD/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 32584 +# cmdline opt mapi_usock = /var/tmp/mtest-30723/.s.monetdb.32584 +# cmdline opt monet_prompt = +# cmdline opt mal_listing = 2 +# cmdline opt gdk_dbpath = /home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users +# cmdline opt mal_listing = 0 +# cmdline opt embedded_r = yes +# cmdline opt gdk_debug = 536870922 + +# 10:44:51 > +# 10:44:51 > "/usr/bin/python2" "grantMonetdb.SQL.py" "grantMonetdb" +# 10:44:51 > + + +# 10:44:51 > +# 10:44:51 > "Done." +# 10:44:51 > + diff --git a/sql/test/Users/Tests/grantMonetdb.stable.out b/sql/test/Users/Tests/grantMonetdb.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/grantMonetdb.stable.out @@ -0,0 +1,40 @@ +stdout of test 'grantMonetdb` in directory 'sql/test/Users` itself: + + +# 10:44:50 > +# 10:44:50 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=32584" "--set" "mapi_usock=/var/tmp/mtest-30723/.s.monetdb.32584" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 10:44:50 > + +# MonetDB 5 server v11.22.0 +# This is an unreleased version +# Serving database 'mTests_sql_test_Users', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit integers dynamically linked +# Found 3.746 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://buzu:32584/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-30723/.s.monetdb.32584 +# Start processing logs sql/sql_logs version 52200 +# Start reading the write-ahead log 'sql_logs/sql/log.18' +# Finished reading the write-ahead log 'sql_logs/sql/log.18' +# Finished processing logs sql/sql_logs +# MonetDB/SQL module loaded +# MonetDB/R module loaded + +Ready. + +# 10:44:51 > +# 10:44:51 > "/usr/bin/python2" "grantMonetdb.SQL.py" "grantMonetdb" +# 10:44:51 > + +#GRANT monetdb TO alice; +#SET ROLE monetdb; +#CREATE USER may WITH PASSWORD 'may' NAME 'May' SCHEMA library; +#GRANT ALL ON orders TO april; +#GRANT monetdb TO april; + +# 10:44:51 > +# 10:44:51 > "Done." +# 10:44:51 > + diff --git a/sql/test/Users/Tests/withGrantOption.SQL.py b/sql/test/Users/Tests/withGrantOption.SQL.py new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/withGrantOption.SQL.py @@ -0,0 +1,23 @@ +### +# Grant a user the right to regrant a privilege. +# Verify that the user can regrant the privilege. +### + +from util import sql_test_client + +sql_test_client('monetdb', 'monetdb', input = """\ +GRANT SELECT ON bank.loans TO april WITH GRANT OPTION; +GRANT INSERT ON bank.loans TO april WITH GRANT OPTION; +GRANT UPDATE ON bank.loans TO april WITH GRANT OPTION; +GRANT DELETE ON bank.loans TO april WITH GRANT OPTION; +""") + + +sql_test_client('april', 'april', input = """\ +GRANT SELECT ON bank.loans TO alice WITH GRANT OPTION; +GRANT INSERT ON bank.loans TO alice WITH GRANT OPTION; +GRANT UPDATE ON bank.loans TO alice WITH GRANT OPTION; +GRANT DELETE ON bank.loans TO alice WITH GRANT OPTION; +""") + + diff --git a/sql/test/Users/Tests/withGrantOption.stable.err b/sql/test/Users/Tests/withGrantOption.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/Users/Tests/withGrantOption.stable.err @@ -0,0 +1,37 @@ +stderr of test 'withGrantOption` in directory 'sql/test/Users` itself: + + +# 10:30:19 > +# 10:30:19 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=38464" "--set" "mapi_usock=/var/tmp/mtest-28429/.s.monetdb.38464" "--set" "monet_prompt=" "--forcemito" "--set" "mal_listing=2" "--dbpath=/home/vera/Desktop/MonetDB/BUILD/var/MonetDB/mTests_sql_test_Users" "--set" "mal_listing=0" "--set" "embedded_r=yes" +# 10:30:19 > + +# builtin opt gdk_dbpath = /home/vera/Desktop/MonetDB/BUILD/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list