网站怎么做好优化,搭建网站注册完域名应该怎么做,网站开发合同管辖权异议,最火的app排行榜前十名数据库服务器通常包含着关键的数据#xff0c;所以为了确保这些数据的安全和完整需要要利用访问控制。MySQL服务器的安全基础是#xff1a;用户应该对他们需要的数据具有适当的访问权#xff0c;既不能多也不能少#xff08;即用户不能对过多的数据具有访问权#xff09;访…数据库服务器通常包含着关键的数据所以为了确保这些数据的安全和完整需要要利用访问控制。MySQL服务器的安全基础是用户应该对他们需要的数据具有适当的访问权既不能多也不能少即用户不能对过多的数据具有访问权访问控制需要给用户提供他们所需的访问权且仅提供他们所需的访问权。管理访问控制需要创建和管理用户账号
如
1、多数用户只需要对表进行读和写但少数用户甚至需要能创建和删除表
2、某些用户需要读表但可能不需要更新表
3、你可能想允许某些用户添加数据但不允许他们删除数据
4、某些用户管理员可能需要处理用户账号的权限但多数用户可能不需要
5、你可能想让用户通过存储过程访问数据但不允许他们直接访问数据
6、你可能根据用户登录的地点限制对某些功能的访问最开始安装时为了操作数据库需要登陆MySQL创建一个名为root用户账号使它对整个MySQL 服务器具有完全的控制之前的操作也是依赖于此账号你一个人怎么弄都行但是要是实际使用的话应该创建一系列的账号有的用于管理有的用于用户、开发等等注意1、访问控制的目的不仅仅是防止用户的恶意企图更常见的是防止无意识的操作错误通过保证用户不能执行他们不应该执行的语句有利于维护数据的安全2、要严肃对来root 登录使用仅在绝对需要的时候使用它 MySQL Administrator 提供了一个图形用户界面用来管理用户及账号权限。本文使用语句进行操作 ,下面就来介绍一下One、查看用户MySQL用户账号和信息存储在名为mysql 的数据库一般不需要直接访问mysql 数据库和表但有时需要直接访问需要直接访问它的时机之一是在需要获得所有用户账号列表时-- 使用名为mysql 的数据库从中可以看出mysql 数据库中有一个名为user 的表它包含所有的用户账号user表中有一个名为user 的列它存储用户登录名。新安装的一般就一个root 用户试验对用户账号和权限进行更改的最好方法就是打开多个数据库客户机如mysql命令行实用程序的多个副本作为一个管理登录其他作为被测试的用户登陆Two、创建用户账号并指定密码cretae user 创建一个新用户账号在创建用户账号时不一定需要口令即密码指定口令时使用 IDENTIFIED BY 进行指定-- create user 用户名 identified by 密码
这个表有 45行有很多是一些其访问权限的控制 验证一下有没有创建成功注意1、identified by 指定的口令为纯文本MySQL将在保存到user 表之前对其加密为了作为散列值指定口令使用 IDENTIFIED BY PASSWORDIDENTIFIED BY PASSWORD2、GRANT 语句也可以用于创建用户账号但一般使用CREATE USER 因为create user 语句最为清楚和简单也可以使用insert语句进行增加不过一般不建议因为MySQL用来存储用户账号信息的表以及表模式等极为重要对他们的任何毁坏都有可能严重的伤害到MySQL服务器因此相对于直接处理来说最好是用标记和函数来处理这些表。Three、重命名用户名 RENAME-- RENAME USER 原来的名字 TO 现在的
注意仅在MySQL 5 或之后的版本支持上述语句rename user,之前是通过 update语句进行更新Four、更改口令使用 SET PASSWORD ,新的口令必须加密主要分为两种一种是给指定的用户设置密码另一种是自己设置自己的密码-- 给 obge 这个用户更改密码
注意SET PASSWORD 更新用户口令时新的口令必须传递到Password()函数中进行加密Five、删除用户账号DROP为了删除一个用户账号以及相关的权限,使用 DROP USER 用户名-- 删除名为 boge 的用户
注意MySQL 5 或之后的版本可以通过 drop user 来删除用户账号和所有相关的账号权限但是之前的版本使用drop user 语句只能删除用户账号不能删除账号权限还要先借助 REVOKE删除与账号相关的权限然后在使用drop user 删除账号。Six、设置访问权限GRANT在创建用户账号后必须接着分配访问权限。因为新创建的用户账号没有访问权限虽然可以登陆MySQL但不能看到数据不能执行任何数据操作。1、查看赋予用户账号的权限-- SHOW GRANTS FOR 用户账号名
上述中 USAGE ON *.* 表示没有权限与之相对的是 ALL PRIVILEGES ON *.* 与所有权限。而 GRANT USAGE ON *.* TO obge% 就可以理解为在任意数据库和任意表上对任何东西没有权限。MySQL 的权限使用 用户名和主机名结合定义userhost,如果不指定主机名则使用默认的主机名%授予用户访问权限而不管主机名2、使用 grant 语句进行设置权限设置时需要至少提供要授予的权限被授予访问权限的数据库或表以及 用户名 如设置 obge 这个用户只可以查询 bookstu 这个数据库的所有表-- GRANT SELECT ON 数据库名.* TO 用户名
上述 grank 允许 用户在bookstu 数据库的所有表bookstu.*上使用 select通过只授予select 访问权限用户 obge ,对bookstu 这个数据库中的所有数据具有只读权限。登陆测试一下3、撤销特定的权限REVOKE-- REVOKE 设置的权限 from 用户名
撤销用户obge 对 bookstu.archive_orders 的增加权限注意 被撤销的访问权限必须存在否则会报错4、GRANT 与 REVOKE 4.1、grant 与revoke 可在以下几个层次进行控制访问权限 a、整个服务器使用GRANT ALL 和 REVOKE ALL b、整个数据库使用 ON database.* c、特定的表使用ON databse.table d、特定的列 e、特定的存储过程 4.2、可以授予和撤销的每个权限 使用 grant 和revoke 结合表中列出的权限可以完全控制用户对数据做什么事情和不能做什么事情。注意1、在使用grant和 revoke时用户账号必须存在但对所涉及的对象没有这个要求。这允许管理员在创建数据和表之前设计和实现安全措施但是这样做的副作用是当某个数据库或表被删除时相关的访问权限依然存在而且将来重新创建该数据库或表时这些权限依然起作用所以建议在设置权限时对那些存在的数据库和表进行设置表2、可以通过列出各个权限并用逗号分隔将多条grant 语句串在一起-- 允许obge 对 bookstu 数据库中的表执行 增加和查看操作