나는 우분투 14.04.1에서 mysql 5.5.43-0을 사용하고 있습니다.
다음 작업을 수행할 수 있는 새로운 관리자(admin)를 생성하려고 합니다.
- 비밀번호로 새 사용자(dbuser1) 생성 - ("사용자 생성" 권한 -> 작동)
- b 새로 생성된 사용자의 비밀번호 설정 - ("mysql.user 테이블에 대한 삽입/업데이트" 권한 -> 작동)
- c 모든 테이블에 사용 권한 부여 - (GRANT USAGE ON.TO 'dbuser1'@'localhost' IDENTIFIED BY ... -> 작동)
- d 새 데이터베이스 생성(db4user1) - ("create" 권한 -> 작동)
- e 모든 권한 부여 - (GRANT ALL PRIVILEGES ON
db4user1
.* TO 'dbuser1'@'localhost';) - (관리자에 대한 권한 부여 -> 작동하지 않음)
e 단계에서 문제가 발생했습니다.
Mysql은 다음 오류를 표시합니다. #1044 - 사용자 'admin'@'localhost'의 데이터베이스 'db4user1'에 대한 액세스가 거부되었습니다.
질문: 위에 언급된 작업을 수행하기 위해 관리자에게 필요한 추가 권한/권한은 무엇입니까?
내 관리 사용자는 새로 생성된 데이터베이스에 기존 사용자를 부여할 수 있는 모든 권한을 갖고 있는 것 같습니다.
그러나 그것은 작동하지 않았습니다.
당신의 도움을 주셔서 감사합니다
스테판
CREATE USER 'dbuser1'@'localhost' IDENTIFIED BY 'password1234'
SET PASSWORD FOR 'dbuser1'@'localhost' = PASSWORD('password5678')
GRANT USAGE ON *.* TO 'dbuser1'@'localhost' IDENTIFIED BY 'password5678' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `db4user1`;
GRANT ALL PRIVILEGES ON `db4user1`.* TO 'dbuser1'@'localhost';
-> #1044 - 'admin'@'localhost' 사용자의 데이터베이스 'db4user1'에 대한 액세스가 거부되었습니다.
답변1
제가 보기에는 default 와 같은 또 다른 관리자를 생성하려는 것 같으 root
므로 다음과 같은 간단한 구문을 사용할 수 있습니다.
GRANT ALL ON *.* TO admin@localhost IDENTIFIED BY 'passwd5678' WITH GRANT OPTION;
답변2
admin
특정 DB(여기)에 대한 모든 권한을 부여할 수 있도록 특정 사용자(여기)에게 충분한 권한을 부여하기 위한 최소 요구 사항은 db4user1
다음과 같습니다.
GRANT DROP ,
REFERENCES ,
INDEX ,
ALTER ,
CREATE TEMPORARY TABLES ,
LOCK TABLES ,
CREATE VIEW ,
EVENT,
TRIGGER,
SHOW VIEW ,
CREATE ROUTINE,
ALTER ROUTINE,
EXECUTE ON `db4user1` . * TO 'admin'@'localhost' WITH GRANT OPTION ;
거의 다...제외하고:
Create
(구조 범위)Select
,Insert
,Update
,Delete
(데이터 범위)
여기에서 admin
사용자를 사용하여:
mysql> GRANT ALL PRIVILEGES ON db4user1.* TO 'dbuser1'@'localhost';
Query OK, 0 rows affected (0.00 sec)
이에 대한 문서를 찾지 못했다는 것을 인정합니다. 과거에는 하나씩 제거하면서 모든 가능성을 테스트하는 데 많은 시간을 보냈습니다.