`

mysql的用户权限

阅读更多

新接触mysql5,对用户管理这一部分操作很是不熟悉,添加的用户不是没有登录的权限,就是创建的procedure无法

访问。摸索了半天,把找到的资料总结在这里。

首先是用户的创建,可以用grant

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

也可以直接插入:

INSERT INTO user (Host,User,Password)
    ->     VALUES('localhost','dummy',PASSWORD('some_pass'));
 FLUSH PRIVILEGES;

对于存储过程,如果是root用户创建的,其他用户则无法访问,可以用如下的方式来解决:

if your jdbc calls to stored procedures are returning
java.sql.SQLException: Driver requires declaration of procedure to either contain a '\nbegin' or '\n' to follow argument declaration, or SELECT privilege on mysql.proc to parse column types.

check that your user can
mysql> SHOW CREATE PROCEDURE `database`.`procedure_name`\G

if not...
mysql> GRANT select ON mysql.proc to user@'host' IDENTIFIED BY 'passwd';

注意:identified by 'passwd' 的用途是修改密码,如果不想修改密码的话就不要加这句话。

分享到:
评论
2 楼 fishyych 2008-07-22  
mysql 5 triggers:

这是5里面新增加的功能,可以通过如下命令查看所有的trigger:
show triggers;

或者查看information_schema数据库里面的triggers表

对于trigger,必须有足够的权限才能够创建和删除。根据目前的引擎逻辑,mysql执行trigger会查看它的definer。如果数据库是从其他库里面导过来的话,没有definer会造成trigger失败。

目前的引擎无法定义某个用户的trigger权限。
1 楼 fishyych 2007-10-08  
查看数据库中所有procedure的方法:
show procedure status;

相关推荐

Global site tag (gtag.js) - Google Analytics