하나의 명령을 사용하여 여러 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..1000
mycnf 파일에 로그인 정보가 없고 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 |