在另一个帐户下获取mysql中的正确当前用户
我(使用根帐户)创建一些程序在另一个帐户下获取mysql中的正确当前用户,mysql,Mysql,我(使用根帐户)创建一些程序myproc,其中包含以下部分代码: declare cur_uname varchar(20); select substring_index(current_user(),'@', 1) into cur_uname; 然后我创建另一个帐户abc@localhostwith将程序mydb.myproc上的执行授予'abc'@'localhost' 当我在帐户abc@localhost,cur\u uname是root,但不是abc。我应该如何解决这个问题? :
myproc
,其中包含以下部分代码:
declare cur_uname varchar(20);
select substring_index(current_user(),'@', 1) into cur_uname;
然后我创建另一个帐户abc@localhost
with将程序mydb.myproc上的执行授予'abc'@'localhost'代码>
当我在帐户abc@localhost
,cur\u uname
是root
,但不是abc
。我应该如何解决这个问题?
- :
在存储程序或视图中,
CURRENT_USER()
返回定义对象的用户的帐户(由其DEFINER
值给出),除非使用SQL安全调用程序
特性定义。在后一种情况下,CURRENT_USER()
返回对象的调用程序
- :
在
utf8
字符集中以字符串形式返回当前MySQL用户名和主机名。[…]该值表示连接到服务器时指定的用户名,以及连接到的客户端主机。该值可以不同于当前用户()
的值
所以我想这一切都取决于你所需要的“正确”的定义