Changeset: ed05003bf33e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ed05003bf33e
Added Files:
        sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py
Modified Files:
        sql/test/BugTracker-2019/Tests/All
Branch: Apr2019
Log Message:

Added test for bug 6765


diffs (62 lines):

diff --git a/sql/test/BugTracker-2019/Tests/All 
b/sql/test/BugTracker-2019/Tests/All
--- a/sql/test/BugTracker-2019/Tests/All
+++ b/sql/test/BugTracker-2019/Tests/All
@@ -36,4 +36,5 @@ merge-table-limit.Bug-6756
 double-free.Bug-6757
 HAVE_LIBPY?python-loader-string.Bug-6759
 select-char.Bug-6761
+grant-select-column.Bug-6765
 next-get-value-bulk.Bug-6766
diff --git a/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py 
b/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2019/Tests/grant-select-column.Bug-6765.py
@@ -0,0 +1,48 @@
+import os
+import sys
+
+try:
+    from MonetDBtesting import process
+except ImportError:
+    import process
+
+
+def client(next_user, next_passwd, input):
+    c = process.client('sql', user=next_user, passwd=next_passwd, 
stdin=process.PIPE, stdout=process.PIPE, stderr=process.PIPE)
+    out, err = c.communicate(input)
+    sys.stdout.write(out)
+    sys.stderr.write(err)
+
+
+s = process.server(args=[], stdin=process.PIPE, stdout=process.PIPE, 
stderr=process.PIPE)
+
+client('monetdb', 'monetdb', '''\
+CREATE schema  "myschema";\
+CREATE TABLE "myschema"."test" ("id" integer, "name" varchar(20));\
+INSERT INTO "myschema"."test" ("id", "name") VALUES (1,'Tom'),(2,'Karen');\
+CREATE USER myuser WITH UNENCRYPTED PASSWORD 'Test123' NAME 'Hulk' SCHEMA 
"myschema";\
+GRANT SELECT ON "myschema"."test" TO myuser;
+''')
+
+client('myuser', 'Test123', '''\
+SELECT "id", "name" FROM "myschema"."test";
+''')
+
+client('monetdb', 'monetdb', '''\
+REVOKE SELECT ON "myschema"."test" FROM myuser;\
+GRANT SELECT ("name") ON "myschema"."test" TO myuser;
+''')
+
+client('myuser', 'Test123', '''\
+SELECT "id", "name" FROM "myschema"."test"; --error, no permission on column 
"name"%s\
+SELECT "name" FROM "myschema"."test"; --ok
+''' % (os.linesep))
+
+client('monetdb', 'monetdb', '''\
+DROP USER myuser;\
+DROP SCHEMA "myschema" CASCADE;
+''')
+
+out, err = s.communicate()
+sys.stdout.write(out)
+sys.stderr.write(err)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to