我现在接受一个别人的网站,php+mysql,负责维护。数据库里面肯定有自定义函数,但是我用show create function func_name\G去查看的时候,显示的函数代码那里是null。我好像没有权限查看自定义函数的源代码。请问,mysql是有这样的机制来限制不同权限的用户查看自定义函数代码吗?谢谢。

解决方案 »

  1.   

    是在当前库,我用 show create function FormatCatalogEntry; 查看,能找到这个函数,但是看不到源代码       +--------------------+----------+-----------------+
        -> | Function           | sql_mode | Create Function |
        -> +--------------------+----------+-----------------+
        -> | FormatCatalogEntry |          | NULL            |
        -> +--------------------+----------+-----------------+
        -> 1 row in set (0.17 sec)用show create function func_name\G  这个也不行。奇怪了。这个函数肯定存在,一定有代码的
      

  2.   

    SHOW CREATE FUNCTION test.func_name\G前的数据名最好也写一下。怀疑你当前的默认数据库不是使用数据库。特别是当你用root进去的时候。
      

  3.   

    老大, 我用mysql> show create function picasso.FormatCatalogEntry;
    +--------------------+----------+-----------------+
    | Function           | sql_mode | Create Function |
    +--------------------+----------+-----------------+
    | FormatCatalogEntry |          | NULL            |
    +--------------------+----------+-----------------+
    1 row in set (0.06 sec)picasso是数据库名。 这个函数是别人创建的,我们俩的登陆名不一样。是不是因为登陆用户名不一样,别人在picasso数据库下创建的函数,我就看不到。
      

  4.   

    估计只给了你 EXECUTE 的权限。没有 CREATE ROUTINE 的权限。所以你看不到。你自己建个procedure 在你自己的database中,看看能不能看到?