今日 User 要建立一個 MySQL 的View Table,但卻出現錯誤訊息
ERROR 1227: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
使用者說,是不是沒有給他足夠的權限,所以無法執行。
環境說明:
1.MySQL 是用 Google Cloud Platform (GCP) 的 Cloud SQL (MySQL 第 2 代 5.7)
2.Cloud SQL 沒有區分帳號可以讀寫哪一個Schema
3.Client 工具用的是 MySQL Workbench 6.2 CE
4.使用者是用 MySQL Workbench 連接到 Cloud SQL 讀取現有 View , 工具就會產出 Create Statement
5.再執行工具產生的Create Statement,就會出錯
處理方式:
當然要加大權限也不是不可以,但更應該確認需求,而不是盲目的加大權限
根據
http://jenyu316.pixnet.net/blog/post/223690152-mysql%E5%9B%9E%E6%87%89----%3A-%231227---access-denied%3B-you-need-%28at-least-o
的說明,只要將以下三行拿掉就可以了。
ALGORITHM = UNDEFINED
DEFINER = `xxxx`@`xx.xx.xx.xx` << 最主要的原因
SQL SECURITY DEFINER
2019年2月26日 星期二
建立 MySQL 新帳號
建立 MySQL 新帳號, 以下例子會建立 "newuser" 帳號, 密碼是 "newpassword", 主機是 "localhost":
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
如果希望該帳號可以從何地方登入,則localhost 可以換成 "%" 字符
給予新帳號 "newuser" 權限讀寫新資料庫 "newdatabase":
GRANT ALL PRIVILEGES ON newdatabase.* TO 'newuser'@'localhost';
更新資料庫狀態,讓帳號與權限生效
FLUSH PRIVILEGES;
登入資料庫
mysql -u newuser -p
訂閱:
文章 (Atom)