Data Control Language
Data Control Language (Data Control Language) is a statement used to set or change database user or role permissions.
Level | Description |
---|---|
Global level | Applies to all databases in a given server. These permissions are stored in mysql. The |
database hierarchy | in the user table applies to all targets in a given database. These permissions are stored in the mysql.db and mysql.host tables |
Table level | Applies to all columns in a given table. These permissions are stored in the |
columns of the mysql.tables_priv table Hierarchy | Use for a single column in a given table. These permissions are stored in the mysql.columns_priv table |
Subroutine Hierarchy | CREATE ROUTINE , ALTER ROUTINE, EXECUTE and GRANT permissions apply to stored subroutines. These permissions can be granted at the global level and database level |
MySQL Permission System
MySQL's permission information is mainly stored in the following tables. When a user connects to the database, MySQL will verify the user's permissions based on these tables.
Table name | Description |
---|---|
User permission table, recording account number, password and global permission information | |
Record database related permissions | |
Permissions that users have on a certain table | |
The user’s permissions on a column of a table | |
The user’s permissions on stored procedures and stored functions |
% means that a host anywhere is allowed to remotely log in to the MySQL database.
CREATE USER 'Username' [@ 'Hostname'][IDENTIFIED BY 'Password'];Example:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "CREATE USER 'user1'@'%' IDENTIFIED BY '123456'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>Effect:
DROP USER 'Username‘[@'Hostname']Example:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "DROP USER 'user1'@'%'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>Modify PasswordFormat:
ALTER USER 'Username'@'Host Name' IDENTIFIED BY 'New Password';Example:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>Permission ManagementMySQL uses
GRANT and
REVOKE to authorize and revoke authorization. Permissions are specifically divided into 3 categories, data category, structure category, and management Class.
Structure | Management | |
---|---|---|
UPDATE DELETE FILE CREATE | ALTERINDEX DROP CREATE TEMPORARY TABLES SHOW VIEW CREATE ROUTINE ALTER ROUTINE EXECUTE CREATE VIEW EVENT TRIGGER USAGE | GRANTSUPER PROCESS RELOAD SHUTDOWN SHOW DATABASES LOCK TABLES REFERENCES REPUCATION CUENT REPUCATION SLAVE CREATE USER |
The above is the detailed content of Data control methods of MySQL and PHP. For more information, please follow other related articles on the PHP Chinese website!

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

TostorestringsefficientlyinMySQL,choosetherightdatatypebasedonyourneeds:1)UseCHARforfixed-lengthstringslikecountrycodes.2)UseVARCHARforvariable-lengthstringslikenames.3)UseTEXTforlong-formtextcontent.4)UseBLOBforbinarydatalikeimages.Considerstorageov

When selecting MySQL's BLOB and TEXT data types, BLOB is suitable for storing binary data, and TEXT is suitable for storing text data. 1) BLOB is suitable for binary data such as pictures and audio, 2) TEXT is suitable for text data such as articles and comments. When choosing, data properties and performance optimization must be considered.

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

MySQLstringdatatypesshouldbechosenbasedondatacharacteristicsandusecases:1)UseCHARforfixed-lengthstringslikecountrycodes.2)UseVARCHARforvariable-lengthstringslikenames.3)UseBINARYorVARBINARYforbinarydatalikecryptographickeys.4)UseBLOBorTEXTforlargeuns


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Notepad++7.3.1
Easy-to-use and free code editor

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
