mysql에 사용자 이름과 비밀번호를 추가하는 명령문: 1. CREATE USER 문, 일반 사용자를 생성하고 해당 비밀번호를 설정할 수 있습니다. 2. INSERT 문, 새로운 일반 사용자를 만들고 해당 비밀번호를 설정할 수 있습니다. 문, 새 사용자를 생성하고 해당 비밀번호와 사용자 권한을 설정합니다.
(추천 튜토리얼: mysql 비디오 튜토리얼)
MySQL이 설치되면 기본적으로 root라는 사용자가 생성됩니다. 이 사용자는 슈퍼 권한을 가지며 전체 MySQL 서버를 제어할 수 있습니다.
MySQL의 일상적인 관리 및 운영에 있어서 누군가 루트 사용자를 악의적으로 이용하여 데이터베이스를 제어하는 것을 방지하기 위해 일반적으로 적절한 권한을 가진 일부 사용자를 생성하고 루트 사용자를 사용하여 로그인하는 경우가 많습니다. 데이터 보안을 보장하기 위해 시스템에 접근합니다.
MySQL은 사용자 생성, 사용자 이름 및 비밀번호 추가를 위한 다음 3가지 방법을 제공합니다.
CREATE USER 문을 사용하여 사용자를 생성하고 사용자 이름과 비밀번호를 추가합니다.
mysql.user 테이블에 사용자를 추가하고 사용자 이름과 비밀번호를 추가하세요.
GRANT 문을 사용하여 사용자를 생성하고 사용자 이름과 비밀번호를 추가하세요.
다음은 예제를 바탕으로 이 3가지 방법을 자세히 설명합니다.
1. CREATE USER 문을 사용하여 사용자를 생성합니다.
CREATE USER 문을 사용하여 MySQL 사용자를 생성하고 해당 비밀번호를 설정할 수 있습니다. 기본 구문 형식은 다음과 같습니다.
CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]
매개 변수 설명은 다음과 같습니다.
1) 사용자
는 사용자 계정을 생성하도록 지정하며 형식은 user_name'@'host_name입니다. 여기서 user_name은 사용자 이름이고, host_name은 사용자가 MySQL에 연결하는 데 사용하는 호스트 이름인 호스트 이름입니다. 생성 과정에서 호스트 이름을 지정하지 않고 사용자 이름만 지정한 경우 호스트 이름은 기본적으로 호스트 그룹을 나타내는 "%"로 지정됩니다. 즉, 모든 호스트에 권한이 열려 있습니다.
2) IDENTIFIED BY 절
은 사용자 비밀번호를 지정하는 데 사용됩니다. 신규 사용자에게는 초기 비밀번호가 필요하지 않습니다. 사용자에게 비밀번호가 없으면 이 절을 생략할 수 있습니다.
3) PASSWORD 'password'
PASSWORD는 해시 값을 사용하여 비밀번호를 설정하는 것을 의미합니다. 비밀번호가 일반 문자열인 경우 PASSWORD 키워드를 사용할 필요가 없습니다. 'password'는 사용자가 로그인하는 데 사용하는 비밀번호를 나타내며 작은따옴표로 묶어야 합니다.
CREATE USER 문을 사용할 때 다음 사항에 주의해야 합니다.
CREATE USER 문에는 초기 비밀번호를 지정할 필요가 없습니다. 그러나 보안 관점에서 이 접근 방식은 권장되지 않습니다.
CREATE USER 문을 사용하려면 mysql 데이터베이스에 대한 INSERT 권한이나 전역 CREATE USER 권한이 있어야 합니다.
CREATE USER 문을 사용하여 사용자를 생성한 후 MySQL은 mysql 데이터베이스의 사용자 테이블에 새 레코드를 추가합니다.
CREATE USER 문은 동시에 여러 사용자를 생성할 수 있습니다. 여러 사용자는 쉼표로 구분됩니다.
새로 생성된 사용자에게는 권한이 거의 없으며 권한이 필요하지 않은 작업만 수행할 수 있습니다. 예를 들어 MySQL에 로그인하고 SHOW 문을 사용하여 모든 스토리지 엔진 및 문자 집합 목록을 쿼리하는 등의 작업을 수행합니다. 두 명의 사용자가 동일한 사용자 이름을 가지고 있지만 호스트 이름이 다른 경우 MySQL은 이들을 두 명의 사용자로 간주하고 두 사용자에게 서로 다른 권한 집합을 할당할 수 있도록 허용합니다.
예제 1
CREATE USER를 사용하여 사용자를 생성합니다. 사용자 이름은 test1, 비밀번호는 test1, 호스트 이름은 localhost입니다. SQL문과 실행과정은 다음과 같다.
mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1'; Query OK, 1 rows affected (0.06 sec)
결과는 test1 사용자가 성공적으로 생성되었음을 보여줍니다.
실제 응용에서는 일반 텍스트로 비밀번호를 지정하는 것을 피해야 합니다. PASSWORD 키워드를 사용하여 비밀번호의 해시 값을 사용하여 비밀번호를 설정할 수 있습니다.
예제 2
MySQL에서는 test1 해시값을 보기 위한 SQL문과 실행 과정은 다음과 같습니다.
mysql> SELECT password('test1'); +-------------------------------------------+ | password('test1') | +-------------------------------------------+ | *06C0BF5B64ECE2F648B5F048A71903906BA08E5C | +-------------------------------------------+ 1 row in set, 1 warning (0.00 sec) “*06C0BF5B64ECE2F648B5F048A71903906BA08E5C”就是 test1 的哈希值。下面创建用户 test1,SQL 语句和执行过程如下: mysql> CREATE USER 'test1'@'localhost'IDENTIFIED BY PASSWORD '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C'; Query OK, 0 rows affected, 1 warning (0.00 sec)
실행 성공 후. , 비밀번호 "test1"을 사용하여 로그인하실 수 있습니다.
2. INSERT 문을 사용하여 새 사용자를 만듭니다
INSERT 문을 사용하여 mysql.user 테이블에 사용자 정보를 추가할 수 있지만 mysql.user 테이블에 대한 INSERT 권한이 있어야 합니다. 일반적으로 INSERT 문은 호스트, 사용자 및 인증_문자열 세 필드의 값만 추가합니다.
MySQL 5.7 사용자 테이블의 비밀번호 필드가 비밀번호에서 인증_문자열로 변경되었습니다. MySQL 5.7 이전 버전을 사용하는 경우 인증_문자열 필드를 비밀번호로 바꾸세요.
INSERT 문을 사용하여 사용자를 생성하는 코드는 다음과 같습니다.
INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('hostname', 'username', PASSWORD('password'), '', '', '');
mysql 데이터베이스의 사용자 테이블에 있는 ssl_cipher, x509_issuer 및 x509_subject 세 필드에는 기본값이 없으므로 삽입 시 이 세 필드를 설정해야 합니다. 사용자 테이블에 새 레코드를 추가합니다. 그렇지 않으면 INSERT 문이 실행되지 않습니다.
예제 3
다음은 INSERT 문을 사용하여 test2라는 사용자를 생성합니다. 호스트 이름은 localhost이고 비밀번호도 test2입니다. SQL 문 및 실행 과정은 다음과 같습니다.
mysql> INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'test2', PASSWORD('test2'), '', '', ''); Query OK, 1 row affected, 1 warning (0.02 sec)
结果显示,新建用户成功。但是这时如果通过该账户登录 MySQL 服务器,不会登录成功,因为 test2 用户还没有生效。
可以使用 FLUSH 命令让用户生效,命令如下:
FLUSH PRIVILEGES;
使用以上命令可以让 MySQL 刷新系统权限相关表。执行 FLUSH 命令需要 RELOAD 权限。
注意:user 表中的 User 和 Host 字段区分大小写,创建用户时要指定正确的用户名称或主机名。
3. 使用GRANT语句新建用户
虽然 CREATE USER 和 INSERT INTO 语句都可以创建普通用户,但是这两种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。
使用 GRANT 语句创建用户的基本语法形式如下:
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
其中:
priv_type 参数表示新用户的权限;
database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
user 参数指定新用户的账号,由用户名和主机名构成;
IDENTIFIED BY 关键字用来设置密码;
password 参数表示新用户的密码。
例 4
下面使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对所有数据库的所有表都有 SELECT 权限。SQL 语句和执行过程如下:
mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3'; Query OK, 0 rows affected, 1 warning (0.01 sec)
其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。
技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。教程后面会详细介绍如何使用 GRANT 语句修改密码、更改权限。
위 내용은 mysql 사용자 이름과 비밀번호를 추가하는 명령문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!