@@ -15,57 +15,61 @@ GRANT USAGE ON EXTERNAL CONNECTION foo TO testuser
15
15
statement error pq: failed to resolve External Connection: external connection with name foo does not exist
16
16
GRANT DROP ON EXTERNAL CONNECTION foo TO testuser
17
17
18
+
19
+ statement error pq: failed to resolve External Connection: external connection with name foo does not exist
20
+ GRANT UPDATE ON EXTERNAL CONNECTION foo TO testuser
21
+
18
22
statement ok
19
23
CREATE EXTERNAL CONNECTION foo AS 'nodelocal://1/foo'
20
24
21
25
statement ok
22
- GRANT USAGE,DROP ON EXTERNAL CONNECTION foo TO testuser
26
+ GRANT USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo TO testuser
23
27
24
28
query TTTT
25
29
SELECT username, path, privileges, grant_options FROM system.privileges ORDER by username
26
30
----
27
31
root /externalconn/foo {ALL} {}
28
- testuser /externalconn/foo {DROP,USAGE} {}
32
+ testuser /externalconn/foo {DROP,UPDATE, USAGE} {}
29
33
30
34
statement ok
31
- REVOKE USAGE,DROP ON EXTERNAL CONNECTION foo FROM testuser
35
+ REVOKE USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo FROM testuser
32
36
33
37
query TTTT
34
38
SELECT username, path, privileges, grant_options FROM system.privileges ORDER by username
35
39
----
36
40
root /externalconn/foo {ALL} {}
37
41
38
42
statement ok
39
- GRANT USAGE,DROP ON EXTERNAL CONNECTION foo TO testuser
43
+ GRANT USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo TO testuser
40
44
41
45
statement ok
42
46
CREATE USER bar
43
47
44
48
# Attempt to grant usage as testuser, this should fail since we did not specify WITH GRANT OPTION
45
49
user testuser
46
50
47
- statement error pq: user testuser missing WITH GRANT OPTION privilege on one or more of USAGE, DROP
48
- GRANT USAGE,DROP ON EXTERNAL CONNECTION foo TO bar
51
+ statement error pq: user testuser missing WITH GRANT OPTION privilege on one or more of USAGE, DROP, UPDATE
52
+ GRANT USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo TO bar
49
53
50
54
user root
51
55
52
56
statement ok
53
- GRANT USAGE,DROP ON EXTERNAL CONNECTION foo TO testuser WITH GRANT OPTION
57
+ GRANT USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo TO testuser WITH GRANT OPTION
54
58
55
59
# Attempt to grant usage as testuser, this should succeed since we did specify WITH GRANT OPTION
56
60
user testuser
57
61
58
62
statement ok
59
- GRANT USAGE,DROP ON EXTERNAL CONNECTION foo TO bar
63
+ GRANT USAGE,DROP,UPDATE ON EXTERNAL CONNECTION foo TO bar
60
64
61
65
user root
62
66
63
67
query TTTT
64
68
SELECT username, path, privileges, grant_options FROM system.privileges ORDER BY username
65
69
----
66
- bar /externalconn/foo {DROP,USAGE} {}
70
+ bar /externalconn/foo {DROP,UPDATE, USAGE} {}
67
71
root /externalconn/foo {ALL} {}
68
- testuser /externalconn/foo {DROP,USAGE} {DROP,USAGE}
72
+ testuser /externalconn/foo {DROP,UPDATE, USAGE} {DROP,UPDATE ,USAGE}
69
73
70
74
# Invalid grants on external connections.
71
75
@@ -79,25 +83,30 @@ statement ok
79
83
CREATE ROLE testuser2
80
84
81
85
statement ok
82
- GRANT DROP, USAGE ON EXTERNAL CONNECTION foo TO testuser2 WITH GRANT OPTION
86
+ GRANT DROP,UPDATE, USAGE ON EXTERNAL CONNECTION foo TO testuser2 WITH GRANT OPTION
83
87
84
88
query TTTB colnames,rowsort
85
89
SHOW GRANTS ON EXTERNAL CONNECTION foo
86
90
----
87
91
connection_name grantee privilege_type is_grantable
88
92
foo bar DROP false
93
+ foo bar UPDATE false
89
94
foo bar USAGE false
90
95
foo root ALL false
91
96
foo testuser DROP true
97
+ foo testuser UPDATE true
92
98
foo testuser USAGE true
93
99
foo testuser2 DROP true
100
+ foo testuser2 UPDATE true
94
101
foo testuser2 USAGE true
95
102
96
103
query TTTB colnames,rowsort
97
104
SHOW GRANTS ON EXTERNAL CONNECTION foo FOR testuser, testuser2
98
105
----
99
106
connection_name grantee privilege_type is_grantable
100
107
foo testuser DROP true
108
+ foo testuser UPDATE true
101
109
foo testuser USAGE true
102
110
foo testuser2 DROP true
111
+ foo testuser2 UPDATE true
103
112
foo testuser2 USAGE true
0 commit comments