MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
来源:互联网 发布:可乐vicky软件 编辑:程序博客网 时间:2024/05/18 00:59
1. MySQL的用户名都是username@hostname的形式
2. 授权用户的命令:
mysql >grant all privileges on *.* to root@"%" identified by "123" // 123是密码
mysql >flush privileges
以上命令授权root@%用户所有权限,如果root@%用户不存在,则自动创建该用户。也可以借助于Navigate工具设
root在任何机器上都可以访问数据库,否则,如果数据库不存在root@%用户,则只有被授权了用户名可以访问数
据库,被授权的用户可以通过Navigate工具查看。
4. 存储过程中有个DEFINER
(1) DEFINER的意思是“定义者”,也就是指明此存储过程有哪个用户定义的,它跟存储过程的使用权限无关;
可以说,存储和过程是没有使用限制的,任何人都可以使用存储过程,那么为什么还要加上DEFINER指定存储过
程的定义者呢,因为,存储过程虽然不限制任何人使用,但是它本身的行为必须受到权限限制,也就是存储过程
本身内部具备哪些对数据库的访问权限,而这访问权限便是DEFINER用户对数据库的访问权限。
(2) DEFINER被定义为一个普通的username@hostname用户就不必说了,如果定义为root@%,有什么特别的吗?没
有。只不过数据库中要存在root@%用户,否则创建的时候没事,调用的时候就提示root@% is not registered,
也就是用户不存在。
(3) DEFINER也可以省略掉,这样存储过程默认的定义者是root@localhost,而一般数据库在安装的时候都会有
一个root@localhost用户,所以,该存储过程也能正常在不同的机器上被使用。
5. 既然上述存储过程任何人都以访问,那么它本身运行时的访问权限怎么限制呢。可以通过SQL SECURITY
INVOKER ,也就是,其本身的访问权限由调用者权限设置。
6.命令分隔符DELIMITER
2. 授权用户的命令:
mysql >grant all privileges on *.* to root@"%" identified by "123" // 123是密码
mysql >flush privileges
以上命令授权root@%用户所有权限,如果root@%用户不存在,则自动创建该用户。也可以借助于Navigate工具设
置。
如果要使新建的帐户也具备建帐户的权限,则要这样:
mysql >grant all privileges on *.* to root@"%" identified by "123" with grant option;
root在任何机器上都可以访问数据库,否则,如果数据库不存在root@%用户,则只有被授权了用户名可以访问数
据库,被授权的用户可以通过Navigate工具查看。
4. 存储过程中有个DEFINER
(1) DEFINER的意思是“定义者”,也就是指明此存储过程有哪个用户定义的,它跟存储过程的使用权限无关;
可以说,存储和过程是没有使用限制的,任何人都可以使用存储过程,那么为什么还要加上DEFINER指定存储过
程的定义者呢,因为,存储过程虽然不限制任何人使用,但是它本身的行为必须受到权限限制,也就是存储过程
本身内部具备哪些对数据库的访问权限,而这访问权限便是DEFINER用户对数据库的访问权限。
(2) DEFINER被定义为一个普通的username@hostname用户就不必说了,如果定义为root@%,有什么特别的吗?没
有。只不过数据库中要存在root@%用户,否则创建的时候没事,调用的时候就提示root@% is not registered,
也就是用户不存在。
(3) DEFINER也可以省略掉,这样存储过程默认的定义者是root@localhost,而一般数据库在安装的时候都会有
一个root@localhost用户,所以,该存储过程也能正常在不同的机器上被使用。
5. 既然上述存储过程任何人都以访问,那么它本身运行时的访问权限怎么限制呢。可以通过SQL SECURITY
INVOKER ,也就是,其本身的访问权限由调用者权限设置。
6.命令分隔符DELIMITER
MySQL默认是以分号作为两个命令的分割点的。但有些命令块中包含分号,比如存储过程或触发器的定义中。为了使MySQL不把命令块中的分号误认做命令的分割点,需要在执行这种命令块前临时改一下命令分隔符。尤其注意,SQLYog里面写存储过程的时候,必须自行定义命令分隔符。
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
- mysql DELIMITER(分隔符)的使用
- MySQL存储过程:批量为用户授权
- mysql(sqlyog) 创建存储过程的delimiter//不识别
- MySQL中存储过程无限报错的问题(delimiter)
- 关于mysql存储过程的definer的问题1
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- (原)mysql存储过程的权限 definer invoker
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- mysql 存储过程需要使用delimiter
- 使用DELIMITER创建存储过程的用法
- C#中数据的批量插入和更新_Asp.net
- POJ 2178 求凸包
- 获取系统时间字符串 java
- Hibernate中的one2many 单向关联
- winsocket2
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
- SQLSERVER字符串函数
- 使用Lotus Enterprise Integrator (LEI)将Domino附件移至关系数据库(图文过程)
- android IP
- 在RedHat Enterprise Linux server 5.4下安装配置JDK
- asp.net时间比较
- display 驱动开发中的名词解释
- IP数据报的分片与重组
- 在RedHat Enterprise Linux server 5.4下安装配置Tomcat