>  기사  >  데이터 베이스  >  MySQL 데이터베이스_MySQL의 사용자 및 사용자 권한 구성

MySQL 데이터베이스_MySQL의 사용자 및 사용자 권한 구성

WBOY
WBOY원래의
2016-09-09 08:13:411102검색

문제: 특정 작성자가 작성한 원격 도구를 사용하여 Mysql 데이터베이스를 관리할 때 모든 데이터가 정상적으로 표시되지만 삭제, 수정 등의 작업이 수행되지 않는 것을 발견했습니다.

아이디어: 데이터베이스의 정보를 원격으로 읽을 수 있으며, 이는 현재 호스트가 데이터베이스에 원격으로 연결할 수 있음을 나타냅니다. 그러나 삭제, 수정 등의 작업을 수행할 수 없습니다. 이는 현재 원격 사용자에게 일부 권한이 부여되지 않았음을 나타냅니다.

 해결책:

현재 사용자 권한 보기

show grants for username

현재 사용자의 권한 표시: 선택, 삽입, 업데이트, 삭제

GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*BB318072E265C419B3E1E19A4DAD1FA969B9B4D4' //只可以在本地登陆的 不能操作的用户
GRANT SELECT, INSERT, UPDATE, DELETE ON `dbName`.* TO 'usename'@'host' //此用户拥有select/insert/update/delelte权限

삭제 및 수정 권한이 있어야 할 것 같은데, 원격툴에서는 동작이 불가능합니다.

자세히 조사한 결과 이 ​​도구로 작성된 데이터베이스의 작업은 기본적으로 함수를 통해 수행되는 것으로 나타났습니다. 내 사용자 권한은 저장 프로시저 및 저장 함수에 대한 관련 권한을 부여하지 않습니다.

따라서 사용자에게 저장 프로시저 및 저장 함수 권한을 추가하세요

GRANT DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'

사용자 권한 보기는

GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*938D2D224D12DAD427AB953B931EA6DF0CF0656A'
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'

원격공구를 다시 사용하여 올바르게 사용하세요

---------------------------------- --- ---------------------------------- --- ----

 첨부: 데이터베이스 사용자 정의 기능 가져오기

mysqldump -uroot -ntd -R dbName > dbName.sql

가져오기 중 오류 메시지 발견

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

오류 메시지 1481, 사용자 정의 함수를 가져올 때 데이터베이스에 사용자 정의 함수를 생성하는 것과 동일하지만 보안 매개변수가 켜져 있지 않기 때문에 log_bin_trust_function_creators의 기본값은 0(즉, OFF)입니다.

에서는 함수의 동기화를 허용하지 않습니다(즉, 함수 생성이 허용되지 않습니다). 이 매개변수를 활성화하면 성공적으로 생성할 수 있습니다.

log_bin_trust_function_creators 값 보기

> show variables like "%func%"
--------------------------------------
|Variable_name |Value|
--------------------------------|-----
|log_bin_trust_function_creators| OFF |
--------------------------------------

값이 OFF이면 함수 생성이 허용되지 않는다는 의미이며, 이 값을 수정하면 됩니다.

> set global log_bin_trust_function_creators=1;
>show variables like "%func%"
--------------------------------------
|Variable_name |Value|
--------------------------------|-----
|log_bin_trust_function_creators| ON |

참고: 가져오기가 완료된 후에는 값을 다시 0(예: OFF)으로 설정해야 합니다. 구체적인 이유는 자세히 설명되지 않습니다.

위는 편집자가 소개한 MySQL 데이터베이스의 사용자 및 사용자 권한 구성입니다. 궁금한 사항이 있으면 메시지를 남겨주시면 편집자가 시간에 맞춰 답변해 드리겠습니다. !

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.