자주 쓰지 않아서 커맨드가 자꾸 헷갈린다. 게다가 가벼운 TSDB라 그런지 MySQL 등과 사용방법이 살짝 다르다. (개발사에서는 InfluxQL, InfluxDB SQL-like Query Language이라고 부른다) 나만의 cheating sheet를 만들어 봄. 이하의 가이드는 서버와 클라이언트 모두 버전 1.1.1 기준. 상당한 부분을 https://docs.influxdata.com/influxdb/v1.1/query_language/spec에서 참고하였음.
Auth
Influx client를 실행해보자. 접속은 localhost
로.
$ influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 1.1.1
InfluxDB shell version: 1.1.1
자 이제 DB가 뭐가 있나 볼까?
> show databases;
ERR: unable to parse authentication credentials
Warning: It is possible this error is due to not setting a database.
Please set a database with the command "use <database>".
인증을 안해서 DB 목록을 못봄. 애초에 노인증으로 접근 가능한 DB도 만들어 놓은 적이 없다. 일단 인증을 해야. 인증 ㄱㄱ.
> auth;
username: 홍길동
password:
> show databases;
_internal
길동이DB1
길동이DB2
...
이제 DB 목록이 보인다.
User Management
현재 유저 목록 보기
> show users;
user admin
---- -----
aaaaa true
bbbbb true
ccccc false
위와 같이 유저 목록을 출력해 줌.
유저 생성
create user <username> with password '<password>';
로 생성. 예시로 ddddd
라는 계정을 생성해 본다.
> create user ddddd with password 'ddddd';
> show users;
user admin
---- -----
aaaaa true
bbbbb true
ccccc false
ddddd false
다시 show users를 해보면 계정이 생성되어 있는 것을 확인 가능. Admin 유저를 생성하고 싶다면 뒤에 with all privileges를 붙인다.
> create user eeeee with password 'eeeee' with all privileges;
> show users;
user admin
---- -----
aaaaa true
bbbbb true
ccccc false
ddddd false
eeeee true
유저 삭제
생성된 유저를 다시 삭제하는 방법은?
> drop user "eeeee";
> show users;
user admin
---- -----
aaaaa true
bbbbb true
ccccc false
ddddd false
Database Management
DB 생성
DB를 하나 만들어 보자.
> create database "dbdb";
> show databases;
_internal
길동이DB1
길동이DB2
...
dbdb
생성 쿼리 뒤에 with를 붙이고 옵션을 덕지덕지 달 수 있는데, 자세한 내용은 이 글의 맨 처음에 나오는 링크 참고.
DB 삭제
유저를 삭제할 때와 유사하다.
> drop database "dbdb";
> show databases;
_internal
길동이DB1
길동이DB2
...
Grant Privileges
권한 부여
한 유저에게 생성한 DB의 admin privilege를 부여해보자.
> grant all on "dbdb" to "ddddd";
> show grants for "ddddd";
database privilege
-------- ---------
dbdb ALL PRIVILEGES
유저 ddddd
의 grants를 뽑아보면 잘 적용되어 있음을 확인할 수 있다.
권한 회수
부여된 권한을 다시 뺏어보자.
> revoke all on "dbdb" from "ddddd";
> show grants for "ddddd";
database privilege
-------- ---------
dbdb NO PRIVILEGES
이제 ddddd
는 더이상 dbdb
DB의 그 어떤 privilege도 가지지 않는다.
0개의 댓글