Пользователи MySQL могут видеть хранимые процедуры? - PullRequest
1 голос
/ 10 декабря 2011

пример: пользователю, не являющемуся суперпользователем, было предоставлено выполнение процедуры, которая вставляется в таблицу "a".Этот пользователь увидит базу данных, в которой находится таблица «а» с «показом баз данных», но не сможет увидеть таблицу «а» с «показом таблиц».Но тот же пользователь может видеть информацию о базовой процедуре с «показом статуса процедуры».

Это для аудита, и я хотел бы, чтобы процесс аудита был как можно более скрытым.Если пользователю предоставлено право на выполнение процедуры, должен ли этот пользователь видеть эту процедуру?И должны ли они видеть базу данных, к которой относится эта процедура?

1 Ответ

2 голосов
/ 10 декабря 2011

Если вы являетесь владельцем процедуры или у вас есть доступ к таблице mysql.proc, вы можете увидеть определение процедуры, как указано здесь .

Таким образом, вы должны создать процедуру как super и установить DEFINER CURRENT_USER (чтобы процедура выполнялась как super). Затем убедитесь, что супер имеет доступ к столу, но никто другой не имеет. Это должно защитить как таблицу, так и источник, но оставить возможность вызывать процедуру.

И это не обязательно должно быть супер, может быть любой пользователь, имеющий доступ к таблице.

...