SUPER privilege(s) for this operation

前端 未结 5 1369
难免孤独
难免孤独 2021-02-01 04:54

I create my database and user navid in my shared server with cpanel (databases -> mySQL@ Databases -> add new user),and then selecte

相关标签:
5条回答
  • 2021-02-01 05:09

    I got the problem too and fixed it thus in MySQL Workbench. In my case it is because the "Send to SQL Editor > Create Statement" has extra stuff in there that prevents from being used without modification.

    Something like this:

    CREATE ALGORITHM=UNDEFINED DEFINER=schemax@localhost SQL SECURITY DEFINER VIEW viewName AS SELECT ....

    Change it to this:

    CREATE VIEW viewName AS SELECT ....

    Seems to work now, no need to update permissions. **I am the only user of my database..

    0 讨论(0)
  • 2021-02-01 05:11

    From the documentation (my emphasis):

    The SUPER privilege enables an account to use CHANGE MASTER TO, KILL or mysqladmin kill to kill threads belonging to other accounts (you can always kill your own threads), PURGE BINARY LOGS, configuration changes using SET GLOBAL to modify global system variables, the mysqladmin debug command, enabling or disabling logging, performing updates even if the read_only system variable is enabled, starting and stopping replication on slave servers, specification of any account in the DEFINER attribute of stored programs and views, and enables you to connect (once) even if the connection limit controlled by the max_connections system variable is reached.

    Since you are already navid to the database, you do not need to set the DEFINER attribute in your stored procedure; adding this line is causing the error to show up. If you remove this statement, your procedure will be created and you won't get the permissions error.

    You only need to set DEFINER if you are setting up the stored procedure for some other user, by default the stored procedure gets the same security context as the user that is creating it:

    All stored programs (procedures, functions, and triggers) and views can have a DEFINER attribute that names a MySQL account. If the DEFINER attribute is omitted from a stored program or view definition, the default account is the user who creates the object.

    0 讨论(0)
  • 2021-02-01 05:26

    just remove the DEFINER attribute and with it's value, example:

    CREATE ALGORITHM=UNDEFINED  SQL SECURITY DEFINER VIEW ...
    
    0 讨论(0)
  • 2021-02-01 05:26

    Don't rely on default values, if emptying the definer field in phpMyAdmin or other programs won't solve, check the definer, should not be username@localhost unless explicitly needed, but username@%.

    0 讨论(0)
  • 2021-02-01 05:28

    I had the same issue - on my local dev server it was fine but on my hosted server (through PHPMyAdmin) it gave me the above error.

    Removing the definer attribute seemed to be the easiest way to fix the problem if you're happy with the definer being the current user.

    0 讨论(0)
提交回复
热议问题