diff options
author | unknown <bell@sanja.is.com.ua> | 2005-09-15 22:29:07 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2005-09-15 22:29:07 +0300 |
commit | 84f029a448fc822f2fa150ab13e61b233b1e4027 (patch) | |
tree | fc6da649fdbafccdf434cac04cebe418f638185d /sql/sql_db.cc | |
parent | fbe338f4b009c8f0057645bdfae9b981a346dbc3 (diff) | |
download | mariadb-git-84f029a448fc822f2fa150ab13e61b233b1e4027.tar.gz |
WL#2787 (part 2, ver 3 (merged)) changed securety context switching
libmysqld/lib_sql.cc:
changed securety context switching
mysql-test/r/rpl_sp.result:
now it show real information from changed security context of SP (checked)
sql/ha_innodb.cc:
changed securety context switching
sql/item.cc:
changed securety context switching
sql/item_func.cc:
changed securety context switching
sql/item_strfunc.cc:
changed securety context switching
sql/log.cc:
changed securety context switching
sql/mysql_priv.h:
changed securety context switching
sql/mysqld.cc:
changed securety context switching
sql/repl_failsafe.cc:
changed securety context switching
sql/set_var.cc:
changed securety context switching
sql/slave.cc:
changed securety context switching
sql/sp.cc:
changed securety context switching
sql/sp_head.cc:
changed securety context switching
in case of inability to switch context we return error now
sql/sp_head.h:
changed securety context switching
sql/sql_acl.cc:
changed securety context switching
sql/sql_acl.h:
changed securety context switching
sql/sql_base.cc:
changed securety context switching
sql/sql_class.cc:
changed securety context switching
sql/sql_class.h:
changed securety context switching
sql/sql_db.cc:
changed securety context switching
sql/sql_insert.cc:
changed securety context switching
sql/sql_parse.cc:
changed securety context switching
sql/sql_show.cc:
changed securety context switching
sql/sql_trigger.cc:
changed securety context switching
sql/sql_view.cc:
changed securety context switching
sql/sql_yacc.yy:
changed securety context switching
Diffstat (limited to 'sql/sql_db.cc')
-rw-r--r-- | sql/sql_db.cc | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 69ccbe690db..e4d8c1b8164 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -1093,6 +1093,7 @@ bool mysql_change_db(THD *thd, const char *name, bool no_access_check) bool system_db= 0; #ifndef NO_EMBEDDED_ACCESS_CHECKS ulong db_access; + st_security_context *sctx= thd->security_ctx; #endif DBUG_ENTER("mysql_change_db"); DBUG_PRINT("enter",("name: '%s'",name)); @@ -1130,22 +1131,20 @@ bool mysql_change_db(THD *thd, const char *name, bool no_access_check) #ifndef NO_EMBEDDED_ACCESS_CHECKS if (!no_access_check) { - if (test_all_bits(thd->master_access,DB_ACLS)) + if (test_all_bits(sctx->master_access,DB_ACLS)) db_access=DB_ACLS; else - db_access= (acl_get(thd->host,thd->ip, thd->priv_user,dbname,0) | - thd->master_access); + db_access= (acl_get(sctx->host, sctx->ip, sctx->priv_user, dbname, 0) | + sctx->master_access); if (!(db_access & DB_ACLS) && (!grant_option || check_grant_db(thd,dbname))) { my_error(ER_DBACCESS_DENIED_ERROR, MYF(0), - thd->priv_user, - thd->priv_host, + sctx->priv_user, + sctx->priv_host, dbname); - mysql_log.write(thd,COM_INIT_DB,ER(ER_DBACCESS_DENIED_ERROR), - thd->priv_user, - thd->priv_host, - dbname); + mysql_log.write(thd, COM_INIT_DB, ER(ER_DBACCESS_DENIED_ERROR), + sctx->priv_user, sctx->priv_host, dbname); my_free(dbname,MYF(0)); DBUG_RETURN(1); } @@ -1167,7 +1166,7 @@ end: thd->db_length=db_length; #ifndef NO_EMBEDDED_ACCESS_CHECKS if (!no_access_check) - thd->db_access=db_access; + sctx->db_access=db_access; #endif if (system_db) { |