[mysql] 특정 ip 접근권한 설정
mysql -uroot -p <-----mysql 접속
1. mysql.user // 사용자 계정 관리
2. mysql.db //사용자별 Database 권한 설정 ('tables_priv' 테이블 보다 우선시 함)
3. mysql.tables_priv // 사용자별 테이블 제어 권한 관리
사용자 추가
접근허용권한= {Select, Insert, Update, Delete, Create, Drop, Grant, References, Index, Alter, Create View, Show view, Trigger}
접근범위= 접근할데이터베이스명.테이블명 // 모든 데이터베이스의 모든테이블에 접근할려면 ( *.* )
접근위치={localhost, 127.0.0.1, 특정 ip, %} // 설정된 위치에서만 로그인 가능함. (% = 모든 위치에서 로그인 가능)
GRANT 접근허용권한 ON 접근범위 TO 'new_userid'@'접근위치' IDENTIFIED BY 'user_password'
예 1 ) GRANT ALL ON *.* To 'test_user'@'%' IDENTIFIED BY '1234';
// 모든 데이터베이스, 테이블을 제어가능한 권한을 가지는 test_user 계정을 추가 하고 패스워드는 1234 로 함.
예 2 ) GRANT Select, Insert, Delete On test_db.test 'test_user'@'192.168.0.20' IDENTIFIED BY '1234'
//'192.168.0.20' 번의 IP를 가진 시스템에서만 접근이 가능한 test_user 계정을 추가하고 패스워드는 1234 로 함.
// 'test_db' 데이터베이스의 'test' 테이블에 Select, Insert, Delete 가능한 권한을 부여함.
2. 사용자 수정 및 권한 변경
1) 사용자 패스워드 변경 // 데이터베이스를 직접 제어하는걸 추천 (GRANT 변경 가능 함( 사용자 추가 명령과 같음).
use mysql;
update user set password = pawword('new_password') where user = 'test_user';
2) 테이블 접근 권한 변경
1) GRANT ALL ON *.* TO test_user@'%'; // 모든 데이터베이스 및 테이블에 제어가능한 모든 권한을 부여함.
2) GRANT Select On *.* to test_user@'%' ; // 권한 축소의 경우 적용되지 않는 것 같음.(계정 제거후 신규 추가로 진행)
3. 사용자 삭제
아래와 같이 3개의 테이블에서 제거 한다.
use mysql;
delete from user where user = 'test_user';
delete from db where user = 'test_user';
delete from tables_priv where user = 'test_user';
4. 데이터베이스 생성 후 모든 계정에서 접근 가능하도록 하기
이 경우에는 (Grant 명령으로 적용 안됨)
use mysql;
insert into db values ('%', 'test_db', '', 'Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
//test_db 에 모든 계정이 Select 가능하도록 권한 설정. // 계정 컬럼(3번째)을 '' 공백으로 처리함으로 써 모든 계정을 허용함.
마지막으로 시스템 적용 하기 위해서는 서비스를 재실행 하시거나..
>> Flush Privileges; -- 명령을 해 주셔야 적용 됩니다.
mysql DB권한 공부(실전 적용)
select * from user;
INSERT INTO mysql.user (host,user, password, ssl_cipher, x509_issuer, x509_subject) VALUES ('0.000.000.000','root',password('pwpw'), '','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'0.000.000.000';
또는
GRANT ALL PRIVILEGES ON *.* TO 'root'@'0.000.000.000' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
'개발 > DB' 카테고리의 다른 글
[oracle] 정규식 REGEXP_REPLACE 함수 (6) | 2016.05.04 |
---|---|
[oracle]오라클 ibatis iterate conjunction (0) | 2016.05.01 |
[oracle]오라클 최대값의 다른 컬럼 구하기 (0) | 2016.04.25 |
[oracle] 정규식REGEXP_INSTR 함수 (0) | 2016.04.09 |
[sql]쿼리 dml, ddl, dcl 등 (0) | 2016.04.08 |
[oracle] 표현식 (0) | 2016.04.07 |
[oracle]오라클 각종 내장 함수(round(), trunc(), trim() 등) (0) | 2016.03.31 |