mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-13655: Set role does not properly grant privileges.
When granting a role to another role, DB privileges get propagated. If the grantee had no previous DB privileges, an extra ACL_DB entry is created to house those "indirectly received" privileges. If, afterwards, DB privileges are granted to the grantee directly, we must make sure to not create a duplicate ACL_DB entry.
This commit is contained in:
@ -191,7 +191,7 @@ typedef int *(*update_var)(THD *, struct st_mysql_show_var *);
|
||||
|
||||
typedef struct st_lex_user {
|
||||
LEX_STRING user, host, password, plugin, auth;
|
||||
bool is_role() { return user.str[0] && !host.str[0]; }
|
||||
bool is_role() const { return user.str[0] && !host.str[0]; }
|
||||
void set_lex_string(LEX_STRING *l, char *buf)
|
||||
{
|
||||
if (is_role())
|
||||
|
Reference in New Issue
Block a user