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
485510a2
Commit
485510a2
authored
Aug 03, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-4.1
into may.pils.ru:/home/svoj/devel/mysql/BUG7391/mysql-4.1
parents
595b5fdb
74465080
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
9 deletions
+12
-9
mysql-test/r/grant.result
mysql-test/r/grant.result
+5
-4
mysql-test/t/grant.test
mysql-test/t/grant.test
+6
-4
sql/sql_update.cc
sql/sql_update.cc
+1
-1
No files found.
mysql-test/r/grant.result
View file @
485510a2
...
@@ -383,7 +383,7 @@ GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
...
@@ -383,7 +383,7 @@ GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'q' in table 't1'
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'q' in table 't1'
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for
column 'd' in table 't2
'
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for
table 't1
'
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
update mysqltest_2.t1, mysqltest_2.t2 set d=10 where s=2;
...
@@ -402,6 +402,7 @@ revoke all on mysqltest_2.t1 from mysqltest_3@localhost;
...
@@ -402,6 +402,7 @@ revoke all on mysqltest_2.t1 from mysqltest_3@localhost;
revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
grant all on mysqltest_2.* to mysqltest_3@localhost;
grant all on mysqltest_2.* to mysqltest_3@localhost;
grant select on *.* to mysqltest_3@localhost;
grant select on *.* to mysqltest_3@localhost;
grant select on mysqltest_2.t1 to mysqltest_3@localhost;
flush privileges;
flush privileges;
use mysqltest_1;
use mysqltest_1;
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
...
@@ -409,11 +410,11 @@ update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
...
@@ -409,11 +410,11 @@ update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'a' in table 't1'
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'a' in table 't1'
use mysqltest_2;
use mysqltest_2;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
ERROR 42000:
Access denied for user 'mysqltest_3'@'localhost' to database 'mysqltest_
1'
ERROR 42000:
UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't
1'
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
ERROR 42000:
Access denied for user 'mysqltest_3'@'localhost' to database 'mysqltest_1
'
ERROR 42000:
UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't2
'
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
ERROR 42000:
Access denied for user 'mysqltest_3'@'localhost' to database 'mysqltest_
1'
ERROR 42000:
UPDATE command denied to user 'mysqltest_3'@'localhost' for table 't
1'
select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2;
select t1.*,t2.* from mysqltest_1.t1,mysqltest_1.t2;
a q b r
a q b r
10 2 1 2
10 2 1 2
...
...
mysql-test/t/grant.test
View file @
485510a2
...
@@ -323,7 +323,7 @@ connection conn1;
...
@@ -323,7 +323,7 @@ connection conn1;
show grants for mysqltest_3@localhost;
show grants for mysqltest_3@localhost;
--error 1143
--error 1143
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
--error 114
3
--error 114
2
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
--error 1143
--error 1143
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
update mysqltest_2.t1, mysqltest_1.t2 set c=20 where b=1;
...
@@ -343,6 +343,8 @@ revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
...
@@ -343,6 +343,8 @@ revoke all on mysqltest_2.t2 from mysqltest_3@localhost;
#test the db/table level privileges
#test the db/table level privileges
grant all on mysqltest_2.* to mysqltest_3@localhost;
grant all on mysqltest_2.* to mysqltest_3@localhost;
grant select on *.* to mysqltest_3@localhost;
grant select on *.* to mysqltest_3@localhost;
# Next grant is needed to trigger bug#7391. Do not optimize!
grant select on mysqltest_2.t1 to mysqltest_3@localhost;
flush privileges;
flush privileges;
disconnect conn1;
disconnect conn1;
connect (conn2,localhost,mysqltest_3,,);
connect (conn2,localhost,mysqltest_3,,);
...
@@ -354,11 +356,11 @@ update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
...
@@ -354,11 +356,11 @@ update mysqltest_2.t1, mysqltest_2.t2 set c=500,d=600;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
use mysqltest_2;
use mysqltest_2;
#the following used to succeed, it must fail now.
#the following used to succeed, it must fail now.
--error 1
044
--error 1
142
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
update mysqltest_1.t1, mysqltest_1.t2 set a=100,b=200;
--error 1
044
--error 1
142
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
update mysqltest_2.t1, mysqltest_1.t2 set c=100,b=200;
--error 1
044
--error 1
142
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
update mysqltest_1.t1, mysqltest_2.t2 set a=100,d=200;
#lets see the result
#lets see the result
connection master;
connection master;
...
...
sql/sql_update.cc
View file @
485510a2
...
@@ -628,7 +628,7 @@ int mysql_multi_update_lock(THD *thd,
...
@@ -628,7 +628,7 @@ int mysql_multi_update_lock(THD *thd,
if
(
!
using_lock_tables
)
if
(
!
using_lock_tables
)
tl
->
table
->
reginfo
.
lock_type
=
tl
->
lock_type
;
tl
->
table
->
reginfo
.
lock_type
=
tl
->
lock_type
;
if
(
check_access
(
thd
,
wants
,
tl
->
db
,
&
tl
->
grant
.
privilege
,
0
,
0
)
||
if
(
check_access
(
thd
,
wants
,
tl
->
db
,
&
tl
->
grant
.
privilege
,
0
,
0
)
||
(
grant_option
&&
check_grant
(
thd
,
wants
,
tl
,
0
,
0
,
0
)))
(
grant_option
&&
check_grant
(
thd
,
wants
,
tl
,
0
,
1
,
0
)))
{
{
tl
->
next
=
save
;
tl
->
next
=
save
;
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
...
...
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