当前位置: 首页 > news >正文

昌乐网站制作价格wordpress底部浮动窗口

昌乐网站制作价格,wordpress底部浮动窗口,七牛云服务器,企业手机网站模板下载在 MySQL 数据库中#xff0c;在创建视图及函数的时候#xff0c;通常会用到definer。并且在迁移视图或函数过程中#xff0c;该选项经常会引起报错。本篇文章主要介绍下 MySQL 中 definer 的含义及作用。 1. DEFINER简单介绍 下述是创建视图的基础语法 CREATE[OR REPLAC…在 MySQL 数据库中在创建视图及函数的时候通常会用到definer。并且在迁移视图或函数过程中该选项经常会引起报错。本篇文章主要介绍下 MySQL 中 definer 的含义及作用。 1. DEFINER简单介绍 下述是创建视图的基础语法 CREATE[OR REPLACE][ALGORITHM {UNDEFINED | MERGE | TEMPTABLE}][DEFINER user][SQL SECURITY { DEFINER | INVOKER }]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]在上述SQL中definer出现了两次。一次是 DEFINER user该语句表明该视图的定义者是user用户若不显式指定则创建此对象的用户就是定义者另一次是SQL SECURITY 选项该选项可以设置为 DEFINER 或 INVOKER。其中当SQL SECURITY为DEFINER时表示 执行该视图函数/存储过程需要使用DEFINER的权限来执行如果DEFINER没有权限则执行不成功。当 SQL SECURITY 属性为 INVOKER 时则需要执行者有调用权限并且有引用的相关对象的权限即表的增删改查等权限才能成功执行。 2. 实验验证 以SQL SECURITY为DEFINER为例 #使用root账号操作 #1.本地可用账号test create user testlocalhost identified by ‘123456’ #2.创建存储过程 CREATE DEFINERtestlocalhost PROCEDURE mytest() SQL SECURITY DEFINER BEGIN SELECT * FROM test.user; END ##3.执行存储过程 CALL mytest();显示execute command denied to user testlocalhost for routine test.mytest;#4.赋予test用户mytest存储过程的执行权限 GRANT EXECUTE on PROCEDURE test.mytest to testlocalhost;#5.执行存储过程 CALL mytest();显示SELECT command denied to user testlocalhost for table user#6.赋予test账号test数据库所有表的select权限 GRANT SELECT ON test.* TO testlocalhost;显示正常以SQL SECURITY为INVOKER为例 #使用root账号操作 #1.本地可用账号test create user testlocalhost identified by ‘123456’ #2.创建存储过程 CREATE DEFINERtestlocalhost PROCEDURE mytest() SQL SECURITY INVOKER BEGIN SELECT * FROM test.user; END ##3.执行存储过程 CALL mytest();显示execute command denied to user testlocalhost for routine test.mytest;#4.赋予test用户mytest存储过程的执行权限 GRANT EXECUTE on PROCEDURE test.mytest to testlocalhost;#5.执行存储过程 CALL mytest();显示正常3. 一些注意事项 额外补充点知识只有拥有创建权限且有 SUPER 权限的用户才可以建 DEFINER 其他用户的对象。例如root 账号可以创建 DEFINER testuser 的视图而 testuser 在有创建视图的前提下只能创建 DEFINER 为自己的视图。 为了更细致的了解 DEFINER 相关作用以视图为例再来说几个特殊情况下的示例 假设用户 u1 不存在使用 root 账号可以创建 DEFINER u1 的视图若该视图的 SQL SECURITY 属性为 DEFINER 则查询时会报用户不存在的错误若该视图的 SQL SECURITY 属性为 INVOKER 则使用 root 账号可正常查询该视图。 假设用户 u2 存在但不具有查询表 a 的权限使用 root 账号可以创建 DEFINER u2 的视图来查询表 a 若该视图的 SQL SECURITY 属性为 DEFINER 则查询时报缺少权限的错误若该视图的 SQL SECURITY 属性为 INVOKER 则使用 root 账号可正常查询该视图。当使用用户 u2 登录时则创建视图来查询表 a 会直接报错缺少权限即创建不了查询表 a 的视图无论此视图的 SQL SECURITY 属性是什么。 看完上述示例后不清楚你对 DEFINER 是否有了更清晰的认识有兴趣的同学可以自己测试看一看。结合笔者日常经验说下 DEFINER 相关注意事项吧 SQL SECURITY 属性建议使用默认的 DEFINER 。某个库内的视图、函数、存储过程建议使用统一的 DEFINER 用户。不要轻易修改及删除数据库用户因为此用户可能是相关对象的定义者。若要修改 SQL SECURITY 属性请做好测试清楚修改前后的区别。数据库迁移时要注意新环境存在相关对象的定义者用户。做数据库迁移时建议首先在新环境创建相关用户及赋予权限。 4. 参考链接 MySQL DEFINER详解 - MySQL技术 - 博客园 (cnblogs.com)
http://www.zqtcl.cn/news/434522/

相关文章:

  • 网站模板哪个好用汕头建设工程总公司
  • iis网站重定向软件开发培训机构排名
  • 浙江大学教室办事大厅网站建设网页棋牌搭建
  • 长沙市天心区建设局网站新河网站
  • 网站改版 升级的目的嘉兴海盐县城乡建设局网站
  • 网站建设一年多少钱上海工程建设交易信息网站
  • 网站推广到底应该怎么做中国建设银行网上登录入口
  • 东莞网站建设服务商wordpress页面样式
  • 亿星网站建设创业网站怎么做
  • 绿韵建设有限公司网站重庆景点分布图
  • 咨询类网站模板wordpress怎样切换语言
  • 大连网站建设与维护题库网站建设目标是
  • 威海网站开发询广西南宁网站运营
  • 网站的素材做logo长沙专业的网站建设企业
  • 网站显示速度的代码是什么情况专门做中式服装平台的网站
  • 驻马店做网站的公司大连网站模板建站
  • aso如何优化网站优化分析软件
  • IT周末做网站违反制度么wordpress 图床 插件
  • 成都网站建设scjsc888因网站建设关闭的公告
  • 唐山公司建设网站十大牌子网
  • 网站开发的选题依据电子商务网站建设内容
  • 中企动力做的网站被百度屏蔽推销网站话术
  • 四川网站制作广告设计自学网教程
  • 做个简单的企业小网站单纯做网站的公司
  • 河北省建设厅官方网站哈尔滨建设工程招聘信息网站
  • 茂名网站制作网页个人博客登录首页
  • 类似qq空间的网站wordpress 简历主题
  • 专业网站运营制作怎么写代码做网站
  • 安徽免费网站制作西安做行业平台网站的公司
  • 我想做服装网站怎么做网页设计优秀案例分析