ver usuario usted tipos quitar privilegios privilegio para operaciĆ³n necesita esta denegado crear como acceso mysql

usuario - tipos de privilegios en mysql



SUPER privilegio(s) para esta operaciĆ³n (5)

Creo mi base de datos y mi usuario de navid en mi servidor compartido con cpanel ( databases -> mySQL@ Databases -> add new user ), y luego seleccioné TODOS LOS PRIVILEGIOS para el usuario de navid . Estaba importando mydatabase.sql cuando me mydatabase.sql a este error.

¿Cómo soluciono el error? procedimiento de tienda funcionó bien en localhost .

¿Qué es SUPER privilegio?

Error SQL query: DELIMITER $$-- -- Procedures -- CREATE DEFINER = `navid`@`%` PROCEDURE `d_answer` ( OUT `sp_out` INT( 11 ) , IN `sp_id` INT( 11 ) ) NO SQL BEGIN DELETE FROM `tblname` WHERE `a_id` = sp_id; SET sp_out = ROW_COUNT( ) ; END$$ MySQL said: Documentation #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation


De la documentation (mi énfasis):

El privilegio SUPER permite que una cuenta use CHANGE MASTER TO, KILL o mysqladmin kill to kill hilos pertenecientes a otras cuentas (siempre puedes matar tus propios hilos), PURGE BINARY LOGS, cambios de configuración utilizando SET GLOBAL para modificar variables globales del sistema, el mysqladmin comando de depuración, habilitar o deshabilitar el registro, realizar actualizaciones incluso si la variable de sistema read_only está habilitada, iniciar y detener la replicación en servidores esclavos, especificación de cualquier cuenta en el atributo DEFINER de programas y vistas almacenados , y le permite conectarse (una vez) incluso si se alcanza el límite de conexión controlado por la variable de sistema max_connections.

Dado que ya está navid a la base de datos, no necesita establecer el atributo DEFINER en su procedimiento almacenado; agregar esta línea está causando que el error aparezca. Si elimina esta declaración, se creará su procedimiento y no obtendrá el error de permisos.

Solo necesita configurar DEFINER si está configurando el procedimiento almacenado para algún otro usuario, de manera predeterminada, el procedimiento almacenado obtiene el mismo contexto de seguridad que el usuario que lo está creando :

Todos los programas almacenados (procedimientos, funciones y activadores) y las vistas pueden tener un atributo DEFINER que nombra una cuenta MySQL. Si el atributo DEFINER se omite en un programa almacenado o en una definición de vista, la cuenta predeterminada es el usuario que crea el objeto.


No confíe en los valores predeterminados, si no se resuelve el campo del definidor en phpMyAdmin u otros programas, verifique el definidor, no debe ser username@localhost menos que se necesite explícitamente, pero username@% .


También tengo el problema y lo arreglé en MySQL Workbench. En mi caso, se debe a que el "Enviar al editor SQL> Crear declaración" tiene elementos adicionales que impiden su uso sin modificaciones.

Algo como esto:

CREAR ALGORITMO = DEFINER DEFINITIVO = schemax @ localhost DEFINIDOR DE SEGURIDAD DE SQL VISTA viewName AS SELECT ....

Cambia esto a esto:

CREAR VISTA viewName AS SELECT ....

Parece que funciona ahora, no es necesario actualizar los permisos. ** Soy el único usuario de mi base de datos.


Tuve el mismo problema: en mi servidor de desarrollo local estaba bien, pero en mi servidor alojado (a través de PHPMyAdmin) me dio el error anterior.

Eliminar el atributo del definidor parece ser la forma más fácil de solucionar el problema si está satisfecho de que el definidor sea el usuario actual.


simplemente elimine el atributo DEFINER y con su valor, ejemplo:

CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW ...