MySQL यूज़र बनाने और सीमित विशेषाधिकार देने का तरीका
सुरक्षा के लिए हमेशा कम से कम आवश्यक विशेषाधिकारों वाले यूज़र बनाएं (Principle of Least Privilege)।
चरण 1: यूज़र बनाना
CREATE USER 'yourUserName'@'yourHostName' IDENTIFIED BY 'yourPassword';
चरण 2: विशिष्ट विशेषाधिकार देना
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE, REFERENCES ON yourDatabaseName.* TO 'yourUserName'@'yourHostName';
पूरा उदाहरण
mysql> CREATE USER 'David'@'localhost' IDENTIFIED BY 'david';
Query OK, 0 rows affected (0.20 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, CREATE, REFERENCES
ON test.* TO 'David'@'localhost';
Query OK, 0 rows affected (0.21 sec)
यूज़र वेरिफाई करना
mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | David | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 17 rows in set (0.00 sec)
आम विशेषाधिकार और उनका अर्थ
| विशेषाधिकार | अनुमति |
|---|---|
| SELECT | डेटा पढ़ना (SELECT क्वेरी) |
| INSERT | नई पंक्तियाँ जोड़ना |
| UPDATE | मौजूदा डेटा संशोधित करना |
| DELETE | पंक्तियाँ हटाना |
| CREATE | नई टेबल/डेटाबेस बनाना |
| ALTER | टेबल संरचना बदलना |
| DROP | टेबल/डेटाबेस हटाना |
| REFERENCES | विदेशी कुंजी बनाना |
| INDEX | इंडेक्स बनाना/हटाना |
सर्वोत्तम अभ्यास
- हमेशा मजबूत पासवर्ड उपयोग करें
- '%' (किसी भी होस्ट) के बजाय विशिष्ट होस्ट (localhost, IP) उपयोग करें
- नियमित रूप से विशेषाधिकारों की समीक्षा करें:
SHOW GRANTS FOR 'user'@'host'; - आवश्यकता न होने पर DROP, GRANT OPTION, SUPER जैसे खतरनाक विशेषाधिकार न दें
- बदलाव के बाद
FLUSH PRIVILEGES;चलाएं (आमतौर पर स्वचालित होता है)
विशेषाधिकार हटाना
REVOKE INSERT, UPDATE ON test.* FROM 'David'@'localhost';
यूज़र हटाना
DROP USER 'David'@'localhost';