하나의 명령을 사용하여 여러 DB에 부여
나는 많이 가지고 있다mariaDB같은 프레픽스를 가진 데이터베이스예를 들어
apple1
apple2
apple3
....
apple5000
apple5001
banana1
banana2
...
banana100
그리고 나는 새로운 사용자를 만들고 싶다.USER할 수 있는 사람SELECT데이터베이스에는apple프레픽스그래서 나는 허락한다.SELECT신규 사용자에게USER다음 여러 명령을 사용하여 수행합니다.
GRANT SELECT ON `apple1` TO 'USER'@'%';
GRANT SELECT ON `apple2` TO 'USER'@'%';
GRANT SELECT ON `apple3` TO 'USER'@'%';
...
GRANT SELECT ON `apple5001` TO 'USER'@'%';
와일드카드 등의 명령어를 사용하여 프레픽스를 지정하는 여러 데이터베이스에 대한 솔루션 허가가 있습니까?%)의LIKE스테이트먼트?
GRANT SELECT ON `apple%`.* TO 'USER'@'192.168.0.227';
진짜 문제는 수천 개의 데이터베이스를 가지고 있다는 것입니다.(MySQL은 디렉토리를 통해 각 데이터베이스를 인스턴스화하기 때문에 OS의 문제)가 너무 많아서 속도가 느려질 수 있습니다.
조회할 저장 프로시저를 작성합니다.information_schema모든 데이터베이스를 검색(사용)LIKE생성(사용)SELECT ... CONCAT)의 목적)GRANT진술들.그런 다음 출력을 mysql 명령줄 도구에 수동으로 복사하여 실행합니다.
이것이 구글 검색에서 나왔기 때문에, 저는 결국 for loop을 하고 mysql에 연결했습니다.
for i in var1 var2 var3 ; do echo "grant all on db_$i.* to user@host;" | mysql ; done
숫자를 사용하면for i in 1..1000mycnf 파일에 로그인 정보가 없고 mysql에 로그인해야 하는 경우mysql -u user -password <Password>위의 유일한 문제는 비밀번호가 명령어 이력에 있다는 것입니다.
이것이 해결책을 찾는 사람들에게 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/31018331/grant-to-multiple-db-using-one-command
'source' 카테고리의 다른 글
| 사용자 역할에 따라 1개의 루트에 대해 다른 뷰를 로드하는 방법이 있습니까? (0) | 2022.12.08 |
|---|---|
| 스프링 부트 - 데이터베이스에 엔티티를 하나만 생성할 수 없습니다. (0) | 2022.12.08 |
| pip freeze 명령어 출력의 "pkg-param==0.0.0"은 무엇입니까? (0) | 2022.12.08 |
| 두 숫자를 더하면 합계가 계산되지 않고 두 숫자를 연결할 수 있습니다. (0) | 2022.12.08 |
| SQL Select 문의 동적 열, "정의되지 않은" 값 유지 (0) | 2022.12.08 |