Méthode MySQL pour supprimer l'utilisateur root : 1. Utilisez l'instruction "CREATE USER" pour créer un utilisateur avec les mêmes autorisations que l'utilisateur root ; 2. Utilisez l'instruction "drop user" pour supprimer l'utilisateur root, avec la syntaxe "DROP USER compte utilisateur root".
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Supprimer l'utilisateur root par défaut de MySQL
Analyse des exigences :
Le mot de passe root apparaît à de nombreux endroits, tels que les documents techniques partagés, les e-mails, les captures d'écran
L'administrateur de l'installation MySQL par défaut. le nom du compte est root, comme nous le savons tous. Afin d'améliorer la sécurité, vous devez modifier un nom d'utilisateur, tel que superutilisateur, ou un nom avec les caractéristiques de l'entreprise, par exemple, xxx_admin. créez un nom d'utilisateur avec les mêmes autorisations que l'utilisateur root User.
GRANT ALL PRIVILEGES ON *.* TO 'x_admin'@'127.0.0.1' IDENTIFIED BY 'xxxx';
drop user root@'127.0.0.1'; drop user root@'localhost'; drop user root@'::1';
Attention :
1. Vue Si vous utilisez le compte root comme vue de DEFINER, si vous supprimez root, vous serez informé que la vue ne peut pas être utilisée et n'a aucune autorisation. Vous devez donc y prêter attention. vérifiez à l'avance si la vue existe. Si elle existe, vous devez modifier l'attribut DEFINER de la vue.
Modifier la vue est une opération qui peut être effectuée en un instant, sauf si la vue est occupée par d'autres instructions SQL et. est dans un état verrouillé. Afficher la vue
select TABLE_SCHEMA, TABLE_NAME, VIEW_DEFINITION, DEFINER from information_schema.VIEWS;
Modifier la vue (non root temporaire Aucune modification)
ALTER DEFINER=`x_admin`@`127.0.0.1` SQL SECURITY DEFINER VIEW v_name AS...
select ROUTINE_SCHEMA,ROUTINE_NAME,ROUTINE_TYPE,DEFINER from information_schema.ROUTINES;
select db,name,type,definer from mysql.proc;
modifier les routines stockées, vous pouvez modifier directement mysql.proc
update mysql.proc set definer='x_admin@127.0.0.1'where db='db_name';
Si vous modifiez toutes les bibliothèques
update mysql.proc set definer='x_admin@127.0.0.1';
2. Utilisez l'utilisateur root pour vous connecter au script MySQL
Ce type de problème est plus facile à résoudre. Vous pouvez créer un compte distinct pour le script afin d'effectuer les opérations spécifiées dans le script. Le nom d'utilisateur peut être nommé script_, ou le nom du script. Les autorisations sont suffisantes. Utilisez-le simplement, n'attribuez pas trop d'autorisations
4. . Méthode : Un script pour ajouter des utilisateurs. (Coopérer avec l'exécution par lots)
#!/usr/bin/python #-*- coding: UTF-8 -*- # ######################################################################## # This program # Version: 2.0.0 (2012-10-10) # Authors: lianjie.ning@qunar.com # History: # ######################################################################## import os import socket import subprocess import sys import traceback from ConfigParser import ConfigParser class Finger(object): 'finger.py' def __init__ (self): print '---- %s, %s' % (socket.gethostname(), self.__doc__) def load_config (self, file="finger.ini"): if not os.path.exists(file): print file,"is not exists, but is created, please fix it" temp_ini = '''[conn_db] login_pwd = exec_sql = ''' open(file, 'w').write(temp_ini) os.chmod(file, 0600) sys.exit() config = ConfigParser() config.read(file) if config.has_section('conn_db') is True: if config.has_option('conn_db', 'login_pwd') is True: login_pwd = config.get('conn_db', 'login_pwd') if config.has_option('conn_db', 'exec_sql') is True: exec_sql = config.get('conn_db', 'exec_sql') return (login_pwd, exec_sql) def grant_user(self, login_pwd, exec_sql): if os.path.exists('/usr/local/bin/mysql'): mysql = '/usr/local/bin/mysql' elif os.path.exists('/usr/bin/mysql'): mysql = '/usr/bin/mysql' elif os.path.exists('/bin/mysql'): mysql = '/bin/mysql' else: print "command not fount of mysql" sys.exit() user = 'xxxx' conn_port = [3306,3307,3308,3309,3310] for i in conn_port: ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM) address = ('127.0.0.1', int(i)) status = ss.connect_ex(address) ss.settimeout(3) ss.close() if status == 0: conn_mysql = '%s -u%s -p%s -h127.0.0.1 -P%d -N -s -e"%s"' % (mysql, user, login_pwd, i, exec_sql) p = subprocess.call(conn_mysql, shell=True, stdout=open("/dev/null")) if p == 0: print "---- checking port: %s is NORMAL" % i else: print "---- checking prot: %s is ERROR" % i if __name__ == '__main__': try: process = Finger() (login_pwd, exec_sql) = process.load_config() process.grant_user(login_pwd, exec_sql) except Exception, e: print str(e) traceback.print_exc() sys.exit()
Tutoriel vidéo mysql
]Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!