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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
62c63239
Commit
62c63239
authored
Mar 29, 2007
by
msvensson@pilot.blaudden
Browse files
Options
Browse Files
Download
Plain Diff
Merge pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
into pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint
parents
c16b50e2
f03ea622
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
210 additions
and
1 deletion
+210
-1
mysql-test/r/rpl_ignore_table.result
mysql-test/r/rpl_ignore_table.result
+107
-0
mysql-test/t/rpl_ignore_table.test
mysql-test/t/rpl_ignore_table.test
+101
-0
sql/sql_yacc.yy
sql/sql_yacc.yy
+2
-1
No files found.
mysql-test/r/rpl_ignore_table.result
View file @
62c63239
...
@@ -14,6 +14,113 @@ SELECT * FROM t4;
...
@@ -14,6 +14,113 @@ SELECT * FROM t4;
a
a
DROP TABLE t1;
DROP TABLE t1;
DROP TABLE t4;
DROP TABLE t4;
**** Test case for BUG#25482 ****
**** Adding GRANTS on master ****
create table test.t1(a int);
create table test.t4(a int);
GRANT SELECT ON test.t1 TO mysqltest1@localhost;
GRANT INSERT ON test.t4 TO mysqltest2@localhost;
GRANT select, update, insert, references on t1
to mysqltest2@localhost;
GRANT SELECT ON test.* TO mysqltest3@localhost;
GRANT INSERT ON test.t4 TO mysqltest3@localhost;
GRANT select(a), update(a), insert(a), references(a) on t4
to mysqltest3@localhost;
create database mysqltest2;
create table mysqltest2.t2 (id int);
GRANT SELECT ON mysqltest2.t2 TO mysqltest4@localhost IDENTIFIED BY 'pass';
insert into mysql.user (user, host) values ("mysqltest5", "somehost");
Warnings:
Warning 1364 Field 'ssl_cipher' doesn't have a default value
Warning 1364 Field 'x509_issuer' doesn't have a default value
Warning 1364 Field 'x509_subject' doesn't have a default value
GRANT SELECT ON *.* TO mysqltest6@localhost;
GRANT INSERT ON *.* TO mysqltest6@localhost;
GRANT INSERT ON test.* TO mysqltest6@localhost;
GRANT INSERT ON test.t1 TO mysqltest6@localhost;
show grants for mysqltest1@localhost;
Grants for mysqltest1@localhost
GRANT USAGE ON *.* TO 'mysqltest1'@'localhost'
GRANT SELECT ON `test`.`t1` TO 'mysqltest1'@'localhost'
show grants for mysqltest2@localhost;
Grants for mysqltest2@localhost
GRANT USAGE ON *.* TO 'mysqltest2'@'localhost'
GRANT SELECT, INSERT, UPDATE, REFERENCES ON `test`.`t1` TO 'mysqltest2'@'localhost'
GRANT INSERT ON `test`.`t4` TO 'mysqltest2'@'localhost'
show grants for mysqltest3@localhost;
Grants for mysqltest3@localhost
GRANT USAGE ON *.* TO 'mysqltest3'@'localhost'
GRANT SELECT ON `test`.* TO 'mysqltest3'@'localhost'
GRANT SELECT (a), INSERT, INSERT (a), UPDATE (a), REFERENCES (a) ON `test`.`t4` TO 'mysqltest3'@'localhost'
show grants for mysqltest4@localhost;
Grants for mysqltest4@localhost
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
GRANT SELECT ON `mysqltest2`.`t2` TO 'mysqltest4'@'localhost'
show grants for mysqltest6@localhost;
Grants for mysqltest6@localhost
GRANT SELECT, INSERT ON *.* TO 'mysqltest6'@'localhost'
GRANT INSERT ON `test`.* TO 'mysqltest6'@'localhost'
GRANT INSERT ON `test`.`t1` TO 'mysqltest6'@'localhost'
flush privileges;
show grants for mysqltest5@somehost;
Grants for mysqltest5@somehost
GRANT USAGE ON *.* TO 'mysqltest5'@'somehost'
**** Checking grants on slave ****
show grants for mysqltest2@localhost;
Grants for mysqltest2@localhost
GRANT USAGE ON *.* TO 'mysqltest2'@'localhost'
GRANT INSERT ON `test`.`t4` TO 'mysqltest2'@'localhost'
show grants for mysqltest3@localhost;
Grants for mysqltest3@localhost
GRANT USAGE ON *.* TO 'mysqltest3'@'localhost'
GRANT SELECT ON `test`.* TO 'mysqltest3'@'localhost'
GRANT SELECT (a), INSERT, INSERT (a), UPDATE (a), REFERENCES (a) ON `test`.`t4` TO 'mysqltest3'@'localhost'
show grants for mysqltest4@localhost;
Grants for mysqltest4@localhost
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
GRANT SELECT ON `mysqltest2`.`t2` TO 'mysqltest4'@'localhost'
show grants for mysqltest5@somehost;
Grants for mysqltest5@somehost
GRANT USAGE ON *.* TO 'mysqltest5'@'somehost'
show grants for mysqltest6@localhost;
Grants for mysqltest6@localhost
GRANT SELECT, INSERT ON *.* TO 'mysqltest6'@'localhost'
GRANT INSERT ON `test`.* TO 'mysqltest6'@'localhost'
show grants for mysqltest1@localhost;
ERROR 42000: There is no such grant defined for user 'mysqltest1' on host 'localhost'
**** Revoking grants on master ****
REVOKE SELECT ON test.t1 FROM mysqltest1@localhost;
REVOKE SELECT ON mysqltest2.t2 FROM mysqltest4@localhost;
REVOKE select(a) on t4
from mysqltest3@localhost;
show grants for mysqltest1@localhost;
Grants for mysqltest1@localhost
GRANT USAGE ON *.* TO 'mysqltest1'@'localhost'
show grants for mysqltest3@localhost;
Grants for mysqltest3@localhost
GRANT USAGE ON *.* TO 'mysqltest3'@'localhost'
GRANT SELECT ON `test`.* TO 'mysqltest3'@'localhost'
GRANT INSERT, INSERT (a), UPDATE (a), REFERENCES (a) ON `test`.`t4` TO 'mysqltest3'@'localhost'
show grants for mysqltest4@localhost;
Grants for mysqltest4@localhost
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
**** Checking grants on slave ****
show grants for mysqltest1@localhost;
ERROR 42000: There is no such grant defined for user 'mysqltest1' on host 'localhost'
show grants for mysqltest3@localhost;
Grants for mysqltest3@localhost
GRANT USAGE ON *.* TO 'mysqltest3'@'localhost'
GRANT SELECT ON `test`.* TO 'mysqltest3'@'localhost'
GRANT INSERT, INSERT (a), UPDATE (a), REFERENCES (a) ON `test`.`t4` TO 'mysqltest3'@'localhost'
show grants for mysqltest4@localhost;
Grants for mysqltest4@localhost
GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7'
drop table t1, t4, mysqltest2.t2;
drop database mysqltest2;
delete from mysql.user where user like "mysqltest%";
delete from mysql.db where user like "mysqltest%";
delete from mysql.tables_priv where user like "mysqltest%";
delete from mysql.columns_priv where user like "mysqltest%";
DROP TABLE IF EXISTS t5;
DROP TABLE IF EXISTS t5;
CREATE TABLE t5 (
CREATE TABLE t5 (
word varchar(50) collate utf8_unicode_ci NOT NULL default ''
word varchar(50) collate utf8_unicode_ci NOT NULL default ''
...
...
mysql-test/t/rpl_ignore_table.test
View file @
62c63239
...
@@ -27,8 +27,109 @@ SELECT * FROM t4;
...
@@ -27,8 +27,109 @@ SELECT * FROM t4;
connection
master
;
connection
master
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
DROP
TABLE
t4
;
DROP
TABLE
t4
;
sync_slave_with_master
;
sync_slave_with_master
;
#
# Bug#25482 GRANT statements are not replicated if
# you use "replicate-ignore-table"
#
--
echo
****
Test
case
for
BUG
#25482 ****
--
echo
****
Adding
GRANTS
on
master
****
connection
master
;
create
table
test
.
t1
(
a
int
);
create
table
test
.
t4
(
a
int
);
# Simple user that should not replicate
GRANT
SELECT
ON
test
.
t1
TO
mysqltest1
@
localhost
;
# Partial replicate
GRANT
INSERT
ON
test
.
t4
TO
mysqltest2
@
localhost
;
GRANT
select
,
update
,
insert
,
references
on
t1
to
mysqltest2
@
localhost
;
# Partial replicate 2
GRANT
SELECT
ON
test
.*
TO
mysqltest3
@
localhost
;
GRANT
INSERT
ON
test
.
t4
TO
mysqltest3
@
localhost
;
GRANT
select
(
a
),
update
(
a
),
insert
(
a
),
references
(
a
)
on
t4
to
mysqltest3
@
localhost
;
# Create another database and table
create
database
mysqltest2
;
create
table
mysqltest2
.
t2
(
id
int
);
# Create a grant that should replicate
GRANT
SELECT
ON
mysqltest2
.
t2
TO
mysqltest4
@
localhost
IDENTIFIED
BY
'pass'
;
# Create a grant manually
insert
into
mysql
.
user
(
user
,
host
)
values
(
"mysqltest5"
,
"somehost"
);
# Partial replicate 3 with *.*
GRANT
SELECT
ON
*.*
TO
mysqltest6
@
localhost
;
GRANT
INSERT
ON
*.*
TO
mysqltest6
@
localhost
;
GRANT
INSERT
ON
test
.*
TO
mysqltest6
@
localhost
;
GRANT
INSERT
ON
test
.
t1
TO
mysqltest6
@
localhost
;
show
grants
for
mysqltest1
@
localhost
;
show
grants
for
mysqltest2
@
localhost
;
show
grants
for
mysqltest3
@
localhost
;
show
grants
for
mysqltest4
@
localhost
;
show
grants
for
mysqltest6
@
localhost
;
flush
privileges
;
show
grants
for
mysqltest5
@
somehost
;
sync_slave_with_master
;
--
echo
****
Checking
grants
on
slave
****
# Check that grants are replicated to slave
show
grants
for
mysqltest2
@
localhost
;
show
grants
for
mysqltest3
@
localhost
;
show
grants
for
mysqltest4
@
localhost
;
show
grants
for
mysqltest5
@
somehost
;
show
grants
for
mysqltest6
@
localhost
;
# mysqltest1 should not be on slave
--
error
1141
show
grants
for
mysqltest1
@
localhost
;
--
echo
****
Revoking
grants
on
master
****
connection
master
;
REVOKE
SELECT
ON
test
.
t1
FROM
mysqltest1
@
localhost
;
REVOKE
SELECT
ON
mysqltest2
.
t2
FROM
mysqltest4
@
localhost
;
REVOKE
select
(
a
)
on
t4
from
mysqltest3
@
localhost
;
show
grants
for
mysqltest1
@
localhost
;
show
grants
for
mysqltest3
@
localhost
;
show
grants
for
mysqltest4
@
localhost
;
sync_slave_with_master
;
--
echo
****
Checking
grants
on
slave
****
# mysqltest1 should not be on slave
--
error
1141
show
grants
for
mysqltest1
@
localhost
;
show
grants
for
mysqltest3
@
localhost
;
show
grants
for
mysqltest4
@
localhost
;
# Cleanup
connection
master
;
drop
table
t1
,
t4
,
mysqltest2
.
t2
;
drop
database
mysqltest2
;
delete
from
mysql
.
user
where
user
like
"mysqltest%"
;
delete
from
mysql
.
db
where
user
like
"mysqltest%"
;
delete
from
mysql
.
tables_priv
where
user
like
"mysqltest%"
;
delete
from
mysql
.
columns_priv
where
user
like
"mysqltest%"
;
sync_slave_with_master
;
connection
master
;
#
#
# bug#22877 replication character sets get out of sync
# bug#22877 replication character sets get out of sync
# using replicate-wild-ignore-table
# using replicate-wild-ignore-table
...
...
sql/sql_yacc.yy
View file @
62c63239
...
@@ -10833,7 +10833,8 @@ grant_ident:
...
@@ -10833,7 +10833,8 @@ grant_ident:
| table_ident
| table_ident
{
{
LEX *lex=Lex;
LEX *lex=Lex;
if (!lex->current_select->add_table_to_list(lex->thd, $1,NULL,0))
if (!lex->current_select->add_table_to_list(lex->thd, $1,NULL,
TL_OPTION_UPDATING))
MYSQL_YYABORT;
MYSQL_YYABORT;
if (lex->grant == GLOBAL_ACLS)
if (lex->grant == GLOBAL_ACLS)
lex->grant = TABLE_ACLS & ~GRANT_ACL;
lex->grant = TABLE_ACLS & ~GRANT_ACL;
...
...
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