Rumah  >  Artikel  >  Apakah jadual kebenaran pangkalan data mysql?

Apakah jadual kebenaran pangkalan data mysql?

百草
百草asal
2023-06-15 09:27:072906semak imbas

Jadual kebenaran pangkalan data MySQL termasuk: 1. jadual pengguna, digunakan untuk merekodkan maklumat akaun yang dibenarkan untuk menyambung ke pelayan Semua kebenaran yang didayakan dalam jadual ini adalah global dan boleh digunakan untuk semua pangkalan data , menyimpan kebenaran operasi pengguna untuk pangkalan data tertentu 3. tables_priv table, digunakan untuk menetapkan kebenaran untuk satu jadual 4. columns_priv table, digunakan untuk menetapkan kebenaran untuk satu lajur data 5. procs_priv table, digunakan untuk penyimpanan Prosedur dan set fungsi tersimpan; kebenaran.

Apakah jadual kebenaran pangkalan data mysql?

Sistem pengendalian untuk tutorial ini: Sistem Windows 10, mysql versi 8.0, komputer Dell G3.

Dalam pangkalan data MySQL, jadual kebenaran termasuk jadual pengguna, jadual db, tables_priv table, columns_priv table dan procs_priv table.

1. Jadual kebenaran pengguna

Jadual pengguna ialah jadual kebenaran paling penting dalam MySQL, digunakan untuk merekodkan maklumat akaun yang dibenarkan untuk menyambung ke pelayan. Perlu diingatkan bahawa semua kebenaran yang didayakan dalam jadual pengguna adalah global dan digunakan untuk semua pangkalan data.

Medan dalam jadual pengguna boleh dibahagikan secara kasar kepada 4 kategori, iaitu lajur pengguna, lajur kebenaran, lajur keselamatan dan lajur kawalan sumber.

Lajur pengguna

Lajur pengguna menyimpan maklumat yang pengguna perlu masukkan semasa menyambung ke pangkalan data MySQL. Perlu diingatkan bahawa versi MySQL 5.7 tidak lagi menggunakan Kata Laluan sebagai medan kata laluan, tetapi menukarnya kepada authentication_string.

Lajur kebenaran

Medan dalam lajur kebenaran menentukan kebenaran pengguna dan digunakan untuk menerangkan operasi yang dibenarkan pada data dan pangkalan data dalam skop global.

Kebenaran secara kasar dibahagikan kepada dua kategori, iaitu kebenaran pengurusan lanjutan dan kebenaran biasa:

  • Kebenaran pengurusan lanjutan terutamanya mengurus pangkalan data, seperti kebenaran untuk menutup perkhidmatan, Keizinan super dan memuatkan pengguna, dsb.;

  • Kebenaran biasa mengendalikan pangkalan data, seperti kebenaran pertanyaan, kebenaran pengubahsuaian, dsb.

Lajur kebenaran jadual pengguna termasuk Select_priv, Insert_ priv dan medan lain yang berakhir dengan priv Jenis data nilai medan ini ialah ENUM Y dan N: Y mewakili pengguna Terdapat kebenaran yang sepadan, N bermakna pengguna tidak mempunyai kebenaran yang sepadan. Atas sebab keselamatan, nilai lalai untuk medan ini ialah N.

Jika anda ingin mengubah suai kebenaran, anda boleh menggunakan penyata GRANT untuk memberikan beberapa kebenaran kepada pengguna, atau anda boleh menetapkan kebenaran dengan mengemas kini jadual pengguna dengan pernyataan UPDATE.

Lajur keselamatan

Lajur keselamatan digunakan terutamanya untuk menentukan sama ada pengguna boleh log masuk dengan jayanya Lajur keselamatan dalam jadual pengguna adalah seperti yang ditunjukkan dalam jadual berikut:

user 表的安全列
字段名 字段类型 是否为空 默认值 说明
ssl_type enum('','ANY','X509','SPECIFIED') NO
支持ssl标准加密安全字段
ssl_cipher blob NO
支持ssl标准加密安全字段
x509_issuer blob NO
支持x509标准字段
x509_subject blob NO
支持x509标准字段
plugin char(64) NO mysql_native_password 引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户
password_expired enum('N','Y') NO N 密码是否过期 (N 未过期,y 已过期)
password_last_changed timestamp YES
记录密码最近修改的时间
password_lifetime smallint(5) unsigned YES
设置密码的有效时间,单位为天数
account_locked enum('N','Y') NO N 用户是否被锁定(Y 锁定,N 未锁定)

Nota: Walaupun password_expired ialah "Y", pengguna masih boleh menggunakan kata laluan untuk log masuk ke MySQL, tetapi tiada operasi dibenarkan.

Biasanya pengedaran standard tidak menyokong ssl. Pembaca boleh menggunakan SHOW VARIABLE LIKE "have_openssl" untuk menyemak sama ada ia mempunyai fungsi ssl. Jika nilai have_openssl DISABLED, ciri penyulitan ssl tidak disokong.

Lajur kawalan sumber

Medan lajur kawalan sumber digunakan untuk mengehadkan sumber yang digunakan oleh pengguna Lajur kawalan sumber dalam jadual pengguna ditunjukkan dalam Jadual 4.

user 表的资源控制列
字段名 字段类型 是否为空 默认值 说明
max_questions int(11) unsigned NO 0 规定每小时允许执行查询的操作次数
max_updates int(11) unsigned NO 0 规定每小时允许执行更新的操作次数
max_connections int(11) unsigned NO 0 规定每小时允许执行的连接操作次数
max_user_connections int(11) unsigned NO 0 规定允许同时建立的连接次数

Nilai lalai medan di atas ialah 0, yang bermaksud tiada had. Jika bilangan pertanyaan atau sambungan pengguna melebihi had kawalan sumber dalam masa sejam, pengguna akan dikunci dan tidak boleh melakukan operasi yang sepadan di sini sehingga satu jam berikutnya. Nilai medan ini boleh dikemas kini menggunakan pernyataan GRANT.

2. Jadual db

Jadual db biasanya digunakan dan merupakan jadual kebenaran yang sangat penting dalam pangkalan data MySQL pangkalan data. Medan dalam jadual boleh dibahagikan secara kasar kepada dua kategori iaitu lajur pengguna dan lajur kebenaran.

Lajur pengguna

Lajur pengguna jadual db mempunyai 3 medan, iaitu Hos, Pengguna dan Db, yang mengenal pasti kebenaran operasi pengguna untuk menyambung ke pangkalan data tertentu daripada hos tertentu. 3 medan ini Gabungan medan membentuk kunci utama jadual db.

Senarai pengguna jadual db adalah seperti yang ditunjukkan dalam jadual berikut:

字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机名
Db char(64) NO 数据库名
User char(32) NO 用户名

Lajur kebenaran

Lajur kebenaran dalam jadual db adalah lebih kurang sama seperti dalam jadual pengguna, kecuali kebenaran dalam jadual pengguna adalah untuk semua pangkalan data, manakala kebenaran dalam jadual db adalah hanya untuk pangkalan data yang ditentukan. Jika anda mahu pengguna mempunyai kebenaran operasi hanya untuk pangkalan data tertentu, anda boleh menetapkan kebenaran yang sepadan dalam jadual pengguna kepada N dahulu, dan kemudian menetapkan kebenaran operasi untuk pangkalan data yang sepadan dalam jadual db.

3. jadual tables_priv

Jadual tables_priv digunakan untuk menetapkan kebenaran pada satu jadual Struktur jadual tables_priv adalah seperti yang ditunjukkan dalam jadual berikut:

字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机
Db char(64) NO 数据库名
User char(32) NO 用户名
Table_name char(64) NO 表名
Grantor char(93) NO 修改该记录的用户
Timestamp timestamp NO CURRENT_TIMESTAMP 修改该记录的时间
Table_priv set('Select','Insert','Update','Delete','
Create','Drop','Grant','References',
'Index','Alter','Create View','Show view','Trigger')
NO 表示对表的操作权限,包括 Select、Insert、Update、Delete、Create、Drop、Grant、References、Index 和 Alter 等
Column_priv set('Select','Insert','Update','References') NO 表示对表中的列的操作权限,包括 Select、Insert、Update 和 References

4. columns_priv table

columns_priv table digunakan untuk menetapkan kebenaran pada satu lajur data, columns_priv Struktur jadual adalah seperti yang ditunjukkan dalam jadual berikut:

字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机
Db char(64) NO 数据库名
User char(32) NO 用户名
Table_name char(64) NO 表名
Column_name char(64) NO 数据列名称,用来指定对哪些数据列具有操作权限
Timestamp timestamp NO CURRENT_TIMESTAMP 修改该记录的时间
Column_priv set('Select','Insert','Update','References') NO 表示对表中的列的操作权限,包括 Select、Insert、Update 和 References

5. jadual procs_priv

Jadual procs_priv boleh menetapkan kebenaran pada prosedur tersimpan dan fungsi tersimpan adalah seperti yang ditunjukkan dalam jadual:

字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机名
Db char(64) NO 数据库名
User char(32) NO 用户名
Routine_name char(64) NO 表示存储过程或函数的名称
Routine_type enum('FUNCTION','PROCEDURE') NO 表示存储过程或函数的类型,Routine_type 字段有两个值,分别是 FUNCTION 和 PROCEDURE。FUNCTION 表示这是一个函数;PROCEDURE 表示这是一个
存储过程。
Grantor char(93) NO 插入或修改该记录的用户
Proc_priv set('Execute','Alter Routine','Grant') NO 表示拥有的权限,包括 Execute、Alter Routine、Grant 3种
Timestamp timestamp NO CURRENT_TIMESTAMP 表示记录更新时间

Atas ialah kandungan terperinci Apakah jadual kebenaran pangkalan data 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