Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
7e96d6ee
Commit
7e96d6ee
authored
Apr 11, 2006
by
jimw@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/jimw/my/mysql-5.1-17139
into mysql.com:/home/jimw/my/mysql-5.1-clean
parents
7696f11b
fbbb797d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
81 additions
and
2 deletions
+81
-2
mysql-test/r/partition_grant.result
mysql-test/r/partition_grant.result
+23
-0
mysql-test/t/partition_grant.test
mysql-test/t/partition_grant.test
+51
-0
sql/sql_parse.cc
sql/sql_parse.cc
+7
-2
No files found.
mysql-test/r/partition_grant.result
0 → 100644
View file @
7e96d6ee
drop schema if exists mysqltest_1;
create schema mysqltest_1;
use mysqltest_1;
create table t1 (a int) partition by list (a) (partition p1 values in (1), partition p2 values in (2), partition p3 values in (3));
insert into t1 values (1),(2);
grant select,alter on mysqltest_1.* to mysqltest_1@localhost;
show grants for current_user;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
GRANT SELECT, ALTER ON `mysqltest_1`.* TO 'mysqltest_1'@'localhost'
alter table t1 add b int;
alter table t1 drop partition p2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1'
grant drop on mysqltest_1.* to mysqltest_1@localhost;
alter table t1 drop partition p2;
revoke alter on mysqltest_1.* from mysqltest_1@localhost;
alter table t1 drop partition p3;
ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1'
revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;
drop user mysqltest_1@localhost;
drop table t1;
drop schema mysqltest_1;
End of 5.1 tests
mysql-test/t/partition_grant.test
0 → 100644
View file @
7e96d6ee
--
source
include
/
have_partition
.
inc
# Grant tests not performed with embedded server
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
schema
if
exists
mysqltest_1
;
--
enable_warnings
#
# Bug #17139: ALTER TABLE ... DROP PARTITION should require DROP privilege
#
create
schema
mysqltest_1
;
use
mysqltest_1
;
create
table
t1
(
a
int
)
partition
by
list
(
a
)
(
partition
p1
values
in
(
1
),
partition
p2
values
in
(
2
),
partition
p3
values
in
(
3
));
insert
into
t1
values
(
1
),(
2
);
grant
select
,
alter
on
mysqltest_1
.*
to
mysqltest_1
@
localhost
;
connect
(
conn1
,
localhost
,
mysqltest_1
,,
mysqltest_1
);
show
grants
for
current_user
;
alter
table
t1
add
b
int
;
--
error
ER_TABLEACCESS_DENIED_ERROR
alter
table
t1
drop
partition
p2
;
disconnect
conn1
;
connection
default
;
grant
drop
on
mysqltest_1
.*
to
mysqltest_1
@
localhost
;
connect
(
conn2
,
localhost
,
mysqltest_1
,,
mysqltest_1
);
alter
table
t1
drop
partition
p2
;
disconnect
conn2
;
connection
default
;
revoke
alter
on
mysqltest_1
.*
from
mysqltest_1
@
localhost
;
connect
(
conn3
,
localhost
,
mysqltest_1
,,
mysqltest_1
);
--
error
ER_TABLEACCESS_DENIED_ERROR
alter
table
t1
drop
partition
p3
;
disconnect
conn3
;
connection
default
;
revoke
select
,
alter
,
drop
on
mysqltest_1
.*
from
mysqltest_1
@
localhost
;
drop
user
mysqltest_1
@
localhost
;
drop
table
t1
;
drop
schema
mysqltest_1
;
--
echo
End
of
5.1
tests
sql/sql_parse.cc
View file @
7e96d6ee
...
@@ -2991,6 +2991,11 @@ end_with_restore_list:
...
@@ -2991,6 +2991,11 @@ end_with_restore_list:
#else
#else
{
{
ulong
priv
=
0
;
ulong
priv
=
0
;
ulong
priv_needed
=
ALTER_ACL
;
/* We also require DROP priv for ALTER TABLE ... DROP PARTITION */
if
(
lex
->
alter_info
.
flags
&
ALTER_DROP_PARTITION
)
priv_needed
|=
DROP_ACL
;
if
(
lex
->
name
&&
(
!
lex
->
name
[
0
]
||
strlen
(
lex
->
name
)
>
NAME_LEN
))
if
(
lex
->
name
&&
(
!
lex
->
name
[
0
]
||
strlen
(
lex
->
name
)
>
NAME_LEN
))
{
{
my_error
(
ER_WRONG_TABLE_NAME
,
MYF
(
0
),
lex
->
name
);
my_error
(
ER_WRONG_TABLE_NAME
,
MYF
(
0
),
lex
->
name
);
...
@@ -3015,7 +3020,7 @@ end_with_restore_list:
...
@@ -3015,7 +3020,7 @@ end_with_restore_list:
else
else
select_lex
->
db
=
first_table
->
db
;
select_lex
->
db
=
first_table
->
db
;
}
}
if
(
check_access
(
thd
,
ALTER_ACL
,
first_table
->
db
,
if
(
check_access
(
thd
,
priv_needed
,
first_table
->
db
,
&
first_table
->
grant
.
privilege
,
0
,
0
,
&
first_table
->
grant
.
privilege
,
0
,
0
,
test
(
first_table
->
schema_table
))
||
test
(
first_table
->
schema_table
))
||
check_access
(
thd
,
INSERT_ACL
|
CREATE_ACL
,
select_lex
->
db
,
&
priv
,
0
,
0
,
check_access
(
thd
,
INSERT_ACL
|
CREATE_ACL
,
select_lex
->
db
,
&
priv
,
0
,
0
,
...
@@ -3026,7 +3031,7 @@ end_with_restore_list:
...
@@ -3026,7 +3031,7 @@ end_with_restore_list:
goto
error
;
/* purecov: inspected */
goto
error
;
/* purecov: inspected */
if
(
grant_option
)
if
(
grant_option
)
{
{
if
(
check_grant
(
thd
,
ALTER_ACL
,
all_tables
,
0
,
UINT_MAX
,
0
))
if
(
check_grant
(
thd
,
priv_needed
,
all_tables
,
0
,
UINT_MAX
,
0
))
goto
error
;
goto
error
;
if
(
lex
->
name
&&
!
test_all_bits
(
priv
,
INSERT_ACL
|
CREATE_ACL
))
if
(
lex
->
name
&&
!
test_all_bits
(
priv
,
INSERT_ACL
|
CREATE_ACL
))
{
// Rename of table
{
// Rename of table
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment