Fix candidate to bug #642, http://bugs.skysql.com/show_bug.cgi?id=652
If user only has a privileges to certain table, login with db still succeeds. Removed invalid debug assertion from readwritesplit.c
This commit is contained in:
@ -53,7 +53,27 @@
|
|||||||
|
|
||||||
|
|
||||||
#define USERS_QUERY_NO_ROOT " AND user NOT IN ('root')"
|
#define USERS_QUERY_NO_ROOT " AND user NOT IN ('root')"
|
||||||
#define LOAD_MYSQL_USERS_QUERY "SELECT user, host, password, concat(user,host,password,Select_priv) AS userdata, Select_priv AS anydb FROM mysql.user WHERE user IS NOT NULL AND user <> ''"
|
|
||||||
|
#if 1
|
||||||
|
# define LOAD_MYSQL_USERS_QUERY \
|
||||||
|
"SELECT DISTINCT \
|
||||||
|
user.user AS user, \
|
||||||
|
user.host AS host, \
|
||||||
|
user.password AS password, \
|
||||||
|
concat(user.user,user.host,user.password, \
|
||||||
|
IF((user.Select_priv+0)||find_in_set('Select',Coalesce(tp.Table_priv,0)),'Y','N') , \
|
||||||
|
COALESCE( db.db,tp.db, '')) AS userdata, \
|
||||||
|
user.Select_priv AS anydb, \
|
||||||
|
COALESCE( db.db,tp.db, NULL) AS db \
|
||||||
|
FROM \
|
||||||
|
mysql.user LEFT JOIN \
|
||||||
|
mysql.db ON user.user=db.user AND user.host=db.host LEFT JOIN \
|
||||||
|
mysql.tables_priv tp ON user.user=tp.user AND user.host=tp.host \
|
||||||
|
WHERE user.user IS NOT NULL AND user.user <> ''"
|
||||||
|
|
||||||
|
#else
|
||||||
|
# define LOAD_MYSQL_USERS_QUERY "SELECT user, host, password, concat(user,host,password,Select_priv) AS userdata, Select_priv AS anydb FROM mysql.user WHERE user IS NOT NULL AND user <> ''"
|
||||||
|
#endif
|
||||||
#define MYSQL_USERS_COUNT "SELECT COUNT(1) AS nusers FROM mysql.user"
|
#define MYSQL_USERS_COUNT "SELECT COUNT(1) AS nusers FROM mysql.user"
|
||||||
|
|
||||||
#define MYSQL_USERS_WITH_DB_ORDER " ORDER BY host DESC"
|
#define MYSQL_USERS_WITH_DB_ORDER " ORDER BY host DESC"
|
||||||
|
@ -2259,8 +2259,6 @@ static bool route_single_stmt(
|
|||||||
LOGIF(LT, (skygw_log_write(LOGFILE_TRACE,
|
LOGIF(LT, (skygw_log_write(LOGFILE_TRACE,
|
||||||
"Found DCB for slave.")));
|
"Found DCB for slave.")));
|
||||||
#endif
|
#endif
|
||||||
ss_dassert(get_bref_from_dcb(rses, target_dcb) !=
|
|
||||||
rses->rses_master_ref);
|
|
||||||
ss_dassert(get_root_master_bref(rses) ==
|
ss_dassert(get_root_master_bref(rses) ==
|
||||||
rses->rses_master_ref);
|
rses->rses_master_ref);
|
||||||
atomic_add(&inst->stats.n_slave, 1);
|
atomic_add(&inst->stats.n_slave, 1);
|
||||||
|
Reference in New Issue
Block a user