mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
manual merge
This commit is contained in:
122
sql/sql_acl.cc
122
sql/sql_acl.cc
@ -36,6 +36,122 @@
|
||||
|
||||
#define FIRST_NON_YN_FIELD 26
|
||||
|
||||
time_t mysql_db_table_last_check= 0L;
|
||||
|
||||
TABLE_FIELD_W_TYPE mysql_db_table_fields[MYSQL_DB_FIELD_COUNT] = {
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Host")},
|
||||
{(char *) STRING_WITH_LEN("char(60)")},
|
||||
{NULL, 0}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Db")},
|
||||
{(char *) STRING_WITH_LEN("char(64)")},
|
||||
{NULL, 0}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("User")},
|
||||
{(char *) STRING_WITH_LEN("char(16)")},
|
||||
{NULL, 0}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Select_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Insert_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Update_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Delete_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Create_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Drop_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Grant_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("References_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Index_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Alter_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Create_tmp_table_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Lock_tables_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Create_view_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Show_view_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Create_routine_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Alter_routine_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Execute_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Event_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
},
|
||||
{
|
||||
{(char *) STRING_WITH_LEN("Trigger_priv")},
|
||||
{(char *) STRING_WITH_LEN("enum('N','Y')")},
|
||||
{(char *) STRING_WITH_LEN("utf8")}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class acl_entry :public hash_filo_element
|
||||
{
|
||||
public:
|
||||
@ -441,14 +557,14 @@ static my_bool acl_load(THD *thd, TABLE_LIST *tables)
|
||||
while (!(read_record_info.read_record(&read_record_info)))
|
||||
{
|
||||
ACL_DB db;
|
||||
update_hostname(&db.host,get_field(&mem, table->field[0]));
|
||||
db.db=get_field(&mem, table->field[1]);
|
||||
update_hostname(&db.host,get_field(&mem, table->field[MYSQL_DB_FIELD_HOST]));
|
||||
db.db=get_field(&mem, table->field[MYSQL_DB_FIELD_DB]);
|
||||
if (!db.db)
|
||||
{
|
||||
sql_print_warning("Found an entry in the 'db' table with empty database name; Skipped");
|
||||
continue;
|
||||
}
|
||||
db.user=get_field(&mem, table->field[2]);
|
||||
db.user=get_field(&mem, table->field[MYSQL_DB_FIELD_USER]);
|
||||
if (check_no_resolve && hostname_requires_resolving(db.host.hostname))
|
||||
{
|
||||
sql_print_warning("'db' entry '%s %s@%s' "
|
||||
|
Reference in New Issue
Block a user