묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Mysql서버의 사용자 계정 설정에 대한 질문이요...
2005.02.03 11:46
mysql 추가 질문 드립니다. ^^;;
저번에도 질문을 드렸는데요. 공부를 하다가 보니까 계속 궁금한 점이 생겨서 오늘도 또 질문을 드려요.....
그럼 질문 드릴께요.
질문1)
user나 db Table의 host필드에 %가 지정되어 있을 경우 "모든 호스트의 접근을 허용한다." 라는 의미로 사용된다고 하는데요. host 필드 이외에 사용자 계정명을 지정하는 user 필드에 %가 사용되었을 경우에도 "모든 사용자의 접근을 허용한다." 라는 의미로 사용되나요?
질문2)
user와 db Table의 host필드에 사용되는 값에는 ...
% : 모든 원격 클라이언트 사용자의 접속을 허용. (단, 로컬에서의 접속은 허용 안 함)
localhost : 로컬에서만 접속을 허용
IP주소 : 지정된 IP 주소를 가진 클라이언트만 접속 허용
과 같은 값이 있는 것으로 알고 있는데요. 각 값에 대해 정의된 내용들이 맞는지 궁금하고요. 이 값들 이외에 host 필드에 추가로 사용되는 값들은 어떤 것들이 있는지 궁금해요. 그리고 localhost.localdomain 이라는 값도 있던데, 이것은 무엇을 의미하는 건가요?
질문3)
user와 db Table의 host필드와 user필드를 다음과 같이 지정했을 경우, 제가 정의한 내용이 맞는지 한 번 봐 주세요...
1) host : % , user : abc
=> 원격 클라이언트 사용자 중에 abc 계정만 접속 가능(로컬 서버에서는 모든 계정으로 접속할 수 없음)
2) host : localhost , user : abc
=> 로컬에서 abc 계정만 접속 가능(원격 클라이언트를 사용하는 모든 계정은 접속할 수 없음)
3) host : 123.123.123.123 , user : abc
=> 123.123.123.123 IP 주소를 가진 abc 계정만 접속 가능
위에 정의한 내용이 맞나요?
그리고 abc계정에 대해 원격 클라이언트에서의 접속을 허용하고, 로컬서버에서의 접속도 허용하려면 user 와 db Table의 host 필드에 %localhost 라고 지정하면 되나요? 아니면 2개의 레코드(열)을 만들어 따로 따로 지정해야 하나요?
질문4)
제가 보고 있는 책에는 user Table의 host 필드에는 localhost 또는 localhost.localdomain 값을 지정하라고 하고 db Table의 host 필드에는 % 값을 지정하라고만 하고 이유에 대해서는 설명을 해 주지 않았는데요. 왜 서로 다른 필드값을 지정해 줘야하나요? 두 Table의 host 필드값을 지정할 때는 모두 동일하게 % 또는 localhost 로 지정해 줘야되지 않나요?
질문5)
user Table에 새로운 사용자의 암호를 지정할 때, password 필드에 암호를 그대로 저장하면 새로 등록된 사용자가 접속하려고 해도 접속이 안 되더라구요. 그래서 password() 함수를 사용하여 암호를 암호화하여 저장하니까 새로 등록된 사용자가 접속을 할 수 있던데요. 원래 user Table의 password필드에 새로운 사용자의 암호를 지정할 때는 반드시 password() 함수를 사용하여 저장해야 하나요?
질문6)
user Table에 사용자를 등록할 때 host 필드에는 localhost, user 필드에는 abc, password 필드에는 password('abc123') 이렇게 지정해 주고 나머지 권한과 관련된 모든 필드 값은 N 으로 지정했고요. db Table의 host 필드에는 %, db 필드에는 abcdb, user 필드에는 abc 라고 지정하고 나머지 권한과 관련된 모든 필드 값을 Y로 지정해 놨거든요. 그런데, abc라는 사용자가 로컬에서 Mysql 서버에 접속한 후에 서버내에 있는 DB목록을 볼 수 있고, 새로운 DB를 만들고 삭제도 할 수 있게 되더라구요. (단, 다른 사용자의 DB는 접근할 수 없고요...) 원래 Mysql 서버내에 있는 DB목록을 보고, 새로운 DB를 만들고 삭제하는 것은 root나 root와 동등한 권한을 가진 사용자 즉, user Table에 host, user, password 필드를 제외한 모든 필드 값이 Y로 지정되어 있는 사용자만 할 수 있는 것이 아닌가요?
그리고 db Table에 있는 abc 계정의 host 필드 값이 % 로 지정되어 있는 상태에서 abc 계정으로 로컬에서 Mysql 서버에 접속했는데 abc 계정의 DB로 접근이 가능하던데요. host 필드 값이 %로 지정되어 있는데 어떻게 로컬서버 상에서 DB로 접근이 가능한 건가요? 혹시 user Table에 있는 abc 계정의 host 필드 값이 % 로 지정되어 있어서 그런가요? 만약 맞다면 user Table의 host 필드 값이 db Table의 host 필드 값보다 우선권을 가지고 있는 건가요?
제가 데이터베이스에 대한 개념이 잡혀있지 않아서 질문이 좀 엉성한데요. 만약 제 질문이 이해가 되셨다면 답변 좀 부탁드릴께요. ^^;;
끝까지 읽어주셔서 감사합니다.(__)
저번에도 질문을 드렸는데요. 공부를 하다가 보니까 계속 궁금한 점이 생겨서 오늘도 또 질문을 드려요.....
그럼 질문 드릴께요.
질문1)
user나 db Table의 host필드에 %가 지정되어 있을 경우 "모든 호스트의 접근을 허용한다." 라는 의미로 사용된다고 하는데요. host 필드 이외에 사용자 계정명을 지정하는 user 필드에 %가 사용되었을 경우에도 "모든 사용자의 접근을 허용한다." 라는 의미로 사용되나요?
질문2)
user와 db Table의 host필드에 사용되는 값에는 ...
% : 모든 원격 클라이언트 사용자의 접속을 허용. (단, 로컬에서의 접속은 허용 안 함)
localhost : 로컬에서만 접속을 허용
IP주소 : 지정된 IP 주소를 가진 클라이언트만 접속 허용
과 같은 값이 있는 것으로 알고 있는데요. 각 값에 대해 정의된 내용들이 맞는지 궁금하고요. 이 값들 이외에 host 필드에 추가로 사용되는 값들은 어떤 것들이 있는지 궁금해요. 그리고 localhost.localdomain 이라는 값도 있던데, 이것은 무엇을 의미하는 건가요?
질문3)
user와 db Table의 host필드와 user필드를 다음과 같이 지정했을 경우, 제가 정의한 내용이 맞는지 한 번 봐 주세요...
1) host : % , user : abc
=> 원격 클라이언트 사용자 중에 abc 계정만 접속 가능(로컬 서버에서는 모든 계정으로 접속할 수 없음)
2) host : localhost , user : abc
=> 로컬에서 abc 계정만 접속 가능(원격 클라이언트를 사용하는 모든 계정은 접속할 수 없음)
3) host : 123.123.123.123 , user : abc
=> 123.123.123.123 IP 주소를 가진 abc 계정만 접속 가능
위에 정의한 내용이 맞나요?
그리고 abc계정에 대해 원격 클라이언트에서의 접속을 허용하고, 로컬서버에서의 접속도 허용하려면 user 와 db Table의 host 필드에 %localhost 라고 지정하면 되나요? 아니면 2개의 레코드(열)을 만들어 따로 따로 지정해야 하나요?
질문4)
제가 보고 있는 책에는 user Table의 host 필드에는 localhost 또는 localhost.localdomain 값을 지정하라고 하고 db Table의 host 필드에는 % 값을 지정하라고만 하고 이유에 대해서는 설명을 해 주지 않았는데요. 왜 서로 다른 필드값을 지정해 줘야하나요? 두 Table의 host 필드값을 지정할 때는 모두 동일하게 % 또는 localhost 로 지정해 줘야되지 않나요?
질문5)
user Table에 새로운 사용자의 암호를 지정할 때, password 필드에 암호를 그대로 저장하면 새로 등록된 사용자가 접속하려고 해도 접속이 안 되더라구요. 그래서 password() 함수를 사용하여 암호를 암호화하여 저장하니까 새로 등록된 사용자가 접속을 할 수 있던데요. 원래 user Table의 password필드에 새로운 사용자의 암호를 지정할 때는 반드시 password() 함수를 사용하여 저장해야 하나요?
질문6)
user Table에 사용자를 등록할 때 host 필드에는 localhost, user 필드에는 abc, password 필드에는 password('abc123') 이렇게 지정해 주고 나머지 권한과 관련된 모든 필드 값은 N 으로 지정했고요. db Table의 host 필드에는 %, db 필드에는 abcdb, user 필드에는 abc 라고 지정하고 나머지 권한과 관련된 모든 필드 값을 Y로 지정해 놨거든요. 그런데, abc라는 사용자가 로컬에서 Mysql 서버에 접속한 후에 서버내에 있는 DB목록을 볼 수 있고, 새로운 DB를 만들고 삭제도 할 수 있게 되더라구요. (단, 다른 사용자의 DB는 접근할 수 없고요...) 원래 Mysql 서버내에 있는 DB목록을 보고, 새로운 DB를 만들고 삭제하는 것은 root나 root와 동등한 권한을 가진 사용자 즉, user Table에 host, user, password 필드를 제외한 모든 필드 값이 Y로 지정되어 있는 사용자만 할 수 있는 것이 아닌가요?
그리고 db Table에 있는 abc 계정의 host 필드 값이 % 로 지정되어 있는 상태에서 abc 계정으로 로컬에서 Mysql 서버에 접속했는데 abc 계정의 DB로 접근이 가능하던데요. host 필드 값이 %로 지정되어 있는데 어떻게 로컬서버 상에서 DB로 접근이 가능한 건가요? 혹시 user Table에 있는 abc 계정의 host 필드 값이 % 로 지정되어 있어서 그런가요? 만약 맞다면 user Table의 host 필드 값이 db Table의 host 필드 값보다 우선권을 가지고 있는 건가요?
제가 데이터베이스에 대한 개념이 잡혀있지 않아서 질문이 좀 엉성한데요. 만약 제 질문이 이해가 되셨다면 답변 좀 부탁드릴께요. ^^;;
끝까지 읽어주셔서 감사합니다.(__)