Fixed granting of privileges for mysql entities

In this patch we use 'GRANT PRIVILEGES' command
instead of writing directly to the table

Change-Id: Ibde624bc1f35f45d5fab7257dbd81e7e78bdd2f3
Closes-Bug: #1509069
(cherry picked from commit acce7b7cef)
This commit is contained in:
Mikhail 2016-08-16 14:48:13 +03:00 committed by Alexey Stupnikov
parent 5449a63af1
commit 3e27e0ac8e
1 changed files with 9 additions and 11 deletions

View File

@ -72,11 +72,14 @@ Puppet::Type.type(:database_grant).provide(:mysql) do
:host => matches[1]
}
when 4
db, table = matches[3].split('.')
table = '*' unless table
{
:type => :db,
:user => matches[0],
:host => matches[1],
:db => matches[3]
:type => :db,
:user => matches[0],
:host => matches[1],
:db => db,
:table => table,
}
end
end
@ -86,15 +89,10 @@ Puppet::Type.type(:database_grant).provide(:mysql) do
name = split_name(@resource[:name])
case name[:type]
when :user
mysql defaults_file, "mysql", "-e", "INSERT INTO user (host, user) VALUES ('%s', '%s')" % [
name[:host], name[:user],
]
mysql defaults_file, "mysql", "-e", "CREATE USER '%s'@'%s';" % [name[:user], name[:host]]
when :db
mysql defaults_file, "mysql", "-e", "INSERT INTO db (host, user, db) VALUES ('%s', '%s', '%s')" % [
name[:host], name[:user], name[:db],
]
mysql defaults_file, "mysql", "-e", "GRANT ALL PRIVILEGES ON %s.%s TO '%s'@'%s' WITH GRANT OPTION;" % [name[:db], name[:table], name[:user], name[:host]]
end
mysql_flush
end
end