全面掌握MS ACCESS SQL(56)
时 间:2018-02-05 16:58:44
作 者:Big Young ID:252 城市:襄阳
摘 要: 用SQL管理默认的组或用户的权限。
正 文:
第四节 用SQL管理默认的组或用户的权限
一、管理默认组及用户的基本要求
无论何时启动Access,JET/ACE数据库引擎都要查找工作组信息文件(默认名称为 system.mdw,也可以使用扩展名.mdw任意命名)。工作组信息文件包含组和用户信息(包括密码),这些信息决定了谁可以打开数据库,以及他们对数据库中的对象的权限。这样,例如,就可以赋予一个组的用户(而不是其他用户)使用特定表的权限,而赋予另一个组查看报表的权限,但不能修改报表的设计。
工作组信息文件包括内置组(Admins和Users)以及一个通用用户帐户(Admin),该帐户具有管理数据库及其包含的对象的权限(无限制)。注意:安装Access时,安装程序会自动创建工作组信息文件,并使用您指定的名称和单位信息来命名。因为这一信息通常很容易被判断出来,因而未经授权的用户很可能会创建另一个版本的工作组信息文件,从而在由该工作组信息文件定义的工作组中,为自己设定一个不可撤消的管理员帐户(Admins组的成员)权限。为防止发生这种情况,应创建一个新的工作组信息文件,并指定唯一的工作组ID(WID)。这样,只有知道WID的用户才能创建该工作组信息文件的副本。
Admins组不能被删除,其成员具有不可撤消的管理权限。我们可以删除Admins组的权限,但Admins组的任何成员都可以重新添加权限。此外,Admins组中必须始终至少有一个管理数据库的成员。对于没有进行安全设置的数据库,Admins组始终包含默认的Admin用户帐户,它也是所有用户默认登录的帐户。
Users组也不能被删除,所有用户必须属于默认的Users组,不管他们是否还属于其他组。我们可以创建用户帐户,而并不将新的用户帐户添加到Admins组中。然而,如果不同时将该用户帐户添加到Users组中,该用户将无法成功启动Access,因为Access内部使用的用于管理数据库的很多表都映射到Users组的权限。
使用以下步骤进行Access数据库的安全设置:
1、将新用户帐户添加到Admins组中。该用户对数据库中的对象具有管理权限。
2、从Admins组中删除默认的Admin用户帐户。
3、从Admin用户和Users组中删除权限。
4、为所创建的任何自定义组分配权限。
在默认Admin用户帐户上设置密码会激活登录对话框,从而每次启动Access时都会提示用户输入用户名和密码。如果您没有在Admin帐户上设置密码,用户将自动作为Admin用户登录,无需密码,也不会出现登录对话框。
对数据库中对象的权限可以是显式的(直接分配给用户帐户)或隐式的(从用户所属的组继承),也可以是两者的结合。Access在权限问题上使用“最少限制”规则,即用户的权限包括其显式和隐式权限的总和。例如,如果用户A的帐户具有限制权限,而用户A属于一个具有限制权限的组,同时也属于另一个具有管理(所有)权限的组,那么用户A将具有管理权限。有鉴于此,通常最好不要为用户帐户分配显式权限。而应创建具有不同权限的组,然后将用户分配给具有适当权限的组,这会减少数据库管理方面的麻烦。
二、用SQL管理默认组与默认用户的示例
1、我们可以新创建一个新的组,名为“Admin1”, WID为“121121”:
Create GROUP Admin1 121121;
2、再创建一个测试用户,名为“AdminTest”,密码为“123456”,PID为“ABC123”,具体的SQL语句如下:
Create USER AdminTest 123456 ABC123;
3、将创建的“AdminTest”的用户添加到新建的“Admin1”组:
ADD USER AdminTest TO Admin1;
4、赋予用户“Admin1”组全部管理权限:
GRANT ALL PRIVILEGES ON DATABASE TO Admin1;
5、将默认的管理员“Admin”从“Admins”和“Users”组中移除:
Drop USER Admin FROM Admins;
Drop USER admin FROM users
6、为默认管理员“Admin”设置一个密码:
Alter USER Admin PASSWORD Admin NULL;
然后保存数据库并关闭后重新启动打开此数据库中,并以新的“AdminTest”登录,这时需要登录密码了。
7、回收默认的“Admins”和“Users”组及“Admin”用户的全部权限:
REVOKE ALL PRIVILEGES ON DATABASE FROM Admin;
REVOKE ALL PRIVILEGES ON DATABASE FROM Users;
REVOKE ALL PRIVILEGES ON DATABASE FROM Admins;
通过这样的设置,他人就不能如果不知道密码及PID等信息就不能随便克隆帐号了,这就增强了数据的安全性。
最后再次声明用户级安全功能不可用在Access web应用程序、web数据库或使用其中一个新的文件格式(.accdb、.accde、.accdc、.accdr)的数据库。
我们可以继续使用早期版本的Access文件格式(如.mdb文件或.ade文件)的Access桌面数据库文件中的用户级安全机制管理。我们建议这仅当您想要继续使用的位置中已经有一个用户级安全机制的解决方案。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)