[MySQL]账户及权限管理_MySQL
bitsCN.com
[MySQL]账户及权限管理
MySQL初始账户管理
MySQL的初始账户如下:
[sql] [root@lx16 ~]# mysql -u root mysql> select host,user,password from mysql.user; +-----------+------+----------+ | host | user | password | +-----------+------+----------+ | lx16 | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | lx16 | | | | localhost | root | | +-----------+------+----------+
MySQL有两类初始用户:
root超级账户:拥有全部的权限,可以做任何事。
匿名账户:如何人都可以通过它连接服务器,但它权限很小。
在默认情况下,这些账户都没有口令,因此为了安全起见,我们首先必须得为所有的root账户设置密码。
设置密码的第一种方法是用SET PASSWORD语句,假如我们现在要给'root'@'localhost'设置口令,只要执行:
[sql] mysql> set password for 'root'@'localhost'=password('*****');
设置密码的第二种方法是直接update user权限表,这种方法的好处是可以同时给多个账户设置密码,如下面的语句可以一次修改所有root账户的密码:
[sql] mysql> update mysql.user set password=password('***') where user='root'; mysql> flush privileges;
如果用update方式修改,必须明确告诉服务器重新加载权限表(flush privileges)
对于匿名账户,强烈建议将他们删除,删除语句如下:
[sql] mysql> drop user ''@'localhost'; mysql> drop user ''@'lx16';
执行完以上操作之后,user权限表里的数据如下:
[sql] mysql> select host,user,password from mysql.user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | lx16 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 | | 127.0.0.1 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 | | ::1 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 | | localhost | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 | +-----------+------+-------------------------------------------+
创建新账户
MySQL不仅要求你必须值得谁(user_name)能连接,还必须指定从什么地方连接(host_name),也就是说即便两个账户拥有相同的名字,如果他们将从不同客户端连接,你也要为它们各自创建一个账户。
可以利用以下两个通配符灵活配置主机名的限制:
‘%’ - 匹配任何多个字符
‘-’ - 配置一个字符
[sql] test账户可以从任意IP连接 create user 'test'@'%' identified by '***'; test账户只能从本地连接 create user 'test'@'localhost' identified by '***'; test账户只能从'192.168.2.%'网段连接 create user 'test'@'192.168.2.%' identified by '***'; 还可以使用IP掩码 create user 'test'@'192.168.2.2
权限管理
对账户授权需要使用Grant语句,如果账户已存在,Grant语句给它授权,如果账户不存在,Grant语句先创建它,再给它授权。
可以通过show grants语句获得自己的权限:
[sql] mysql> show grants; +----------------------------------------------------------------------------------------------------------------------------------------+ | Grants for root@localhost | +----------------------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*578EC7851088AC1F2A67B100540344B03BD2BA99' WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------------+
也可以通过show grants for 获得其它用户的权限:
[sql] mysql>show grants for ''@'localhost'; +--------------------------------------+ | Grants for @localhost | +--------------------------------------+ | GRANT USAGE ON *.* TO ''@'localhost' | +--------------------------------------+
上面显示的是两种特殊权限,一种是ALL(后面的PRIVILEGES关键字可省略),表示所有操作的权限(但不包括Grant权限,Grant权限由with grant option赋予);另一种是USAGE,一种特殊的“无权限”的权限。
在某些少数情况下,我们可能需要更细致的权限控制,MySQL可以做到在列上进行授权,下面这条语句表示把全表的select权限给test,但只把(street,city)这两列的update权限给它:
[sql] grant select, update (street,city) on sampdb.member to 'test'@'localhost';
bitsCN.com

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]
