MySQL默认的数据库权限机制
权限级别介绍
1、全局性管理权限:
作用于整个MySQL实例级别,例如创建和删除用户、查看服务器进程等。
包括如PROCESS
,SUPER
,SHUTDOWN
等权限。
2、数据库级别权限:
作用于某个指定的数据库上,允许用户执行与该数据库相关的操作。
包括如CREATE
,ALTER
,DROP
,INDEX
等权限。
3、数据库对象级别权限:
作用于特定的数据库对象(如表、视图),允许用户对特定对象执行特定操作。
包括如SELECT
,INSERT
,UPDATE
,DELETE
,CREATE VIEW
等权限。
权限存储与加载
MySQL将权限信息存储在几个系统表中,这些表位于mysql
数据库中,包括user
,db
,tables_priv
,columns_priv
,procs_priv
等,当MySQL实例启动后,这些权限信息会被加载到内存中,以便快速访问和管理。
默认权限
1、新用户的默认权限:
新创建的用户默认没有任何权限,仅拥有连接登录的权限(即USAGE
权限)。
GRANT USAGE ON *.* TO 'nacos'@'192.168.202.%'
。
常见问题解答(FAQs)
1、为什么新创建的用户没有数据访问权限?
答:新创建的用户默认仅有连接登录权限(USAGE
),不包含任何数据访问或修改的权限,需要通过GRANT
语句明确授予相关权限。
2、如何查看和修改用户权限?
答:可以使用以下命令查询用户权限:
SHOW GRANTS FOR 'username'@'hostname';
使用GRANT
和REVOKE
语句来授予和撤销权限:
GRANT SELECT ON database.* TO 'username'@'hostname'; REVOKE SELECT ON database.* FROM 'username'@'hostname';
通过以上内容,可以全面了解MySQL中的默认权限机制及其管理方法。
权限类型 | 权限描述 | 默认权限 |
SELECT | 选择表中的数据 | YES |
INSERT | 向表中插入数据 | YES |
UPDATE | 更新表中的数据 | YES |
DELETE | 从表中删除数据 | YES |
CREATE | 创建新的数据库和表 | NO |
DROP | 删除数据库和表 | NO |
INDEX | 创建和使用索引 | NO |
ALTER | 修改表结构 | NO |
REFERENCES | 创建外键约束 | NO |
CREATE TEMPORARY TABLES | 创建临时表 | NO |
LOCK TABLES | 锁定表 | NO |
ALL PRIVILEGES | 允许所有权限 | NO |
默认权限机制:
1、当创建一个新用户时,MySQL会为其分配一个默认的数据库权限集。
2、默认情况下,新用户只有SELECT、INSERT、UPDATE和DELETE权限,没有CREATE、DROP、ALTER等权限。
3、可以通过GRANT语句为用户分配额外的权限。
4、如果需要删除用户的默认权限,可以使用REVOKE语句。
5、权限设置是针对数据库级别的,用户可以访问其权限范围内的所有表和视图。
这些权限可能因MySQL版本和配置而有所不同,在具体应用中,请以实际版本和配置为准。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1212519.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复