你这问题里 “sqladmin” 不是 Ubuntu 里的一个固定命令/工具,需要先确认你指的是 哪种数据库。下面把 最常见的情况 都列出来,按你实际用的数据库对照即可。
sudo mysql -u root -p
或
mysql -u root -p
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE
ON *.* TO 'sqladmin'@'localhost';
GRANT ALL PRIVILEGES ON testdb.* TO 'sqladmin'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'sqladmin'@'localhost';
sudo -u postgres psql
CREATE USER sqladmin WITH PASSWORD 'strong_password';
ALTER USER sqladmin WITH SUPERUSER;
GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
或
ALTER USER sqladmin CREATEDB;
注意:这是 Linux 用户权限,不是数据库权限
sudo adduser sqladmin
sudo usermod -aG sudo sqladmin
sudo apt install sudo
sudo visudo
加入:
sqladmin ALL=(root) NOPASSWD: /usr/bin/systemctl restart mysql, /usr/bin/systemctl status mysql
| 需求 | 建议 |
|---|---|
| 数据库管理员 | MySQL/PostgreSQL 用户 |
| 运维管理 | Ubuntu 系统用户 |
| Web 应用 | 只给 SELECT/INSERT/UPDATE |
| 生产环境 | 不用 ALL PRIVILEGES |
你可以直接告诉我:
我可以给你一套 直接可复制的命令方案。