Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk meningkatkan kebenaran dalam mysql

Bagaimana untuk meningkatkan kebenaran dalam mysql

青灯夜游
青灯夜游asal
2022-04-12 15:25:315854semak imbas

Pernyataan GRANT boleh digunakan dalam mysql untuk menambah keizinan kepada pengguna Sintaksnya ialah "JENIS keizinan PADA nilai tahap kebenaran KEPADA pengguna [DIENTIFIED OLEH 'kata laluan'] [WITH clause];"; "pengguna" mewakili akaun pengguna , formatnya ialah "'nama pengguna'@'nama hos'".

Bagaimana untuk meningkatkan kebenaran dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam MySQL, anda boleh menggunakan pernyataan GRANT untuk membenarkan pengguna dan meningkatkan kebenaran mereka.

Format sintaks adalah seperti berikut:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY 'password']
[WITH with_option [with_option]...]

di mana:

  • parameter priv_type mewakili jenis kebenaran

  • columns_list menunjukkan lajur yang mana kebenaran digunakan apabila parameter ini ditinggalkan, ini bermakna kebenaran digunakan untuk keseluruhan jadual; nyatakan tahap kebenaran;

  • Parameter pengguna mewakili akaun pengguna, yang terdiri daripada nama pengguna dan nama hos dan formatnya ialah "'nama pengguna'@'nama hos'"; 🎜>

  • DIKENAL PASTI OLEH parameter digunakan untuk Pengguna menetapkan kata laluan;
  • Kebenaran yang boleh diberikan dalam MySQL adalah seperti berikut:
  • Kebenaran lajur berkaitan dengan lajur tertentu dalam jadual. Sebagai contoh, anda boleh menggunakan pernyataan KEMASKINI untuk mengemas kini kebenaran pada nilai lajur nama dalam jadual pelajar.
  • Kebenaran jadual berkaitan dengan semua data dalam jadual tertentu. Sebagai contoh, anda boleh menggunakan pernyataan SELECT untuk menanyakan kebenaran untuk semua data dalam jadual pelajar.

    Kebenaran pangkalan data berkaitan dengan semua jadual dalam pangkalan data tertentu. Sebagai contoh, anda boleh mencipta jadual baharu dalam mytest pangkalan data sedia ada.
  • Kebenaran pengguna, berkaitan dengan semua pangkalan data dalam MySQL. Sebagai contoh, anda boleh memadam pangkalan data sedia ada atau mencipta pangkalan data baharu.
  • Sehubungan itu, nilai yang boleh digunakan untuk menentukan tahap kebenaran dalam penyata GRANT mempunyai format berikut:
  • *: menunjukkan pangkalan data semasa semua jadual.
  • *.*: Mewakili semua jadual dalam semua pangkalan data.

    db_name.*: Mewakili semua jadual dalam pangkalan data, db_name menentukan nama pangkalan data.
  • db_name.tbl_name: Mewakili jadual atau paparan dalam pangkalan data, db_name menentukan nama pangkalan data, tbl_name menentukan nama jadual atau nama paparan.
  • db_name.routine_name: Mewakili prosedur atau fungsi yang disimpan dalam pangkalan data, routine_name menentukan nama prosedur atau nama fungsi yang disimpan.
  • Klausa: Jika kebenaran diberikan kepada pengguna yang tidak wujud, MySQL akan secara automatik melaksanakan kenyataan CREATE USER untuk mencipta pengguna, tetapi kata laluan mesti ditetapkan untuk pengguna.
  • Dalam MySQL, hanya pengguna yang mempunyai kebenaran GRANT boleh melaksanakan pernyataan GRANT.

  • Contoh:

  • Gunakan pernyataan GRANT untuk mencipta pengguna testUser baharu dengan kata laluan testPwd. User testUser mempunyai pertanyaan dan memasukkan kebenaran pada semua data, dan diberikan keizinan GRANT.

Gunakan penyata SHOW GRANTS untuk menanyakan kebenaran pengguna testUser, seperti yang ditunjukkan di bawah.

Pengetahuan lanjutan: Penerangan jenis kebenaran

mysql> GRANT SELECT,INSERT ON *.*
    -> TO 'testUser'@'localhost'
    -> IDENTIFIED BY 'testPwd'
    -> WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.05 sec)
1) Apabila memberikan kebenaran pangkalan data, c51d11f24210fb0a2fd35f966dc4cc48 Nilai:

权限名称 对应user表中的字段 说明
SELECT Select_priv 表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
INSERT Insert_priv 表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETE Delete_priv 表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATE Update_priv 表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES References_priv 表示授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE Create_priv 表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTER Alter_priv  表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
SHOW VIEW Show_view_priv 表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
CREATE ROUTINE Create_routine_priv 表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE Alter_routine_priv 表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
INDEX Index_priv 表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
DROP Drop_priv 表示授予用户可以删除特定数据库中所有表和视图的权限。
CREATE TEMPORARY TABLES Create_tmp_table_priv 表示授予用户可以在特定数据库中创建临时表的权限。
CREATE VIEW Create_view_priv 表示授予用户可以在特定数据库中创建新的视图的权限。
EXECUTE ROUTINE Execute_priv 表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
LOCK TABLES Lock_tables_priv 表示授予用户可以锁定特定数据库的已有数据表的权限。
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 表示以上所有权限/超级权限

2) Apabila memberikan kebenaran jadual, 9d3fc6ebe857e28c066f62264e402a97 boleh ditentukan sebagai nilai berikut:

权限名称 对应user表中的字段 说明
SELECT Select_priv 授予用户可以使用 SELECT 语句进行访问特定表的权限
INSERT Insert_priv 授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限
DELETE Delete_priv 授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限
DROP Drop_priv 授予用户可以删除数据表的权限
UPDATE Update_priv 授予用户可以使用 UPDATE 语句更新特定数据表的权限
ALTER Alter_priv  授予用户可以使用 ALTER TABLE 语句修改数据表的权限
REFERENCES References_priv 授予用户可以创建一个外键来参照特定数据表的权限
CREATE Create_priv 授予用户可以使用特定的名字创建一个数据表的权限
INDEX Index_priv 授予用户可以在表上定义索引的权限
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 所有的权限名

3) Apabila memberikan kebenaran lajur, nilai 9d3fc6ebe857e28c066f62264e402a97 hanya Ia boleh ditentukan sebagai SELECT, INSERT dan UPDATE Pada masa yang sama, senarai lajur senarai nama lajur perlu ditambah selepas kebenaran.

4) Kebenaran yang paling berkesan ialah kebenaran pengguna.

Apabila memberikan kebenaran pengguna, c51d11f24210fb0a2fd35f966dc4cc48 boleh ditentukan sebagai semua nilai semasa memberikan kebenaran pangkalan data, dan juga boleh menjadi nilai berikut:

  • CREATE USER: Menunjukkan bahawa pengguna diberikan kebenaran untuk membuat dan memadam pengguna baharu.

  • SHOW DATABASES: Menunjukkan bahawa pengguna diberikan kebenaran untuk menggunakan pernyataan SHOW DATABASES untuk melihat definisi semua pangkalan data sedia ada.

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Bagaimana untuk meningkatkan kebenaran dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn