ホームページ >データベース >mysql チュートリアル >mysqlで定義者を変更する方法

mysqlで定義者を変更する方法

WBOY
WBOYオリジナル
2022-05-19 17:30:462994ブラウズ

変更方法: 1. "update mysql.proc setdefiner=..." を使用して関数の定義者を変更します; 2. "update mysql.EVENT setdefiner=..." を使用して関数の定義者を変更しますイベントの定義者。

mysqlで定義者を変更する方法

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql の定義者を変更する方法

1. 関数とプロシージャの定義者を変更します

select definer from mysql.proc;  -- 函数、存储过程
update mysql.proc set definer=‘user@localhost‘; -- 如果有限定库或其它可以加上where条件

2. の定義者を変更しますイベント

select DEFINER from mysql.EVENT; -- 定时事件
update mysql.EVENT set definer=‘ user@localhost ‘;

3. ビューの定義者を変更する

## 関数を変更するのと比べて、面倒です:

select DEFINER from information_schema.VIEWS;
select concat("alter DEFINER=`user`@`localhost` SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER<>‘user@localhost‘;

Justクエリ文を再度実行してください。

4. トリガーの定義者を変更する

現時点では具体的で便利な方法はありませんが、HeidiSQL や sqlyog などのツールを使用して 1 つずつ変更することができます。 1つ。変更プロセス中に他のテーブルの変更がトリガーされると、データの不整合が発生するため、変更を行う前にテーブルをロックする必要があることに注意してください。

推奨学習:

mysql ビデオ チュートリアル

以上がmysqlで定義者を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。