第二节 用SQL创建与删除组和用户
2003及以前版本的ACCESS使用Jet数据库引擎来存储和检索数据库中的对象。Jet数据库引擎使用基于工作组的安全模型(也称为用户级安全性)来判断谁可以打开数据库,并保护数据库所包含对象的安全。无论是否明确设置了数据库的安全性,用户级安全性对所有ACCESS数据库始终处于打开状态。我们可以通过操纵用户和组帐户的权限和成员身份来更改ACCESS中的默认安全级别。下面我们将首先对如何运用SQL创建与删除组及用户此进行介绍。
在多用户环境中,为了方便对用户的管理,通常把用户分成不同的组,通过设置工作组,可以将用户划分分配到工作组,然后对工作组授予权限,而不用一个个的对用户授权,这样就降低了分配和管理权限的复杂性。
一、用SQL创建与删除工作组
1、创建与删除工作组的SQL语法
创建组:Create GROUP group1 pid1[, group2 pid2, ...]
此语句创建一个或多个用户工作组。这里“group1”与“group2”等是将要创建的工作组的名字,工作组的名字不能与本数据库中其它对象同名。“pid1”和“pid2”等是用于区分各不同组的唯一标识符,PID是英语“personal identifier”的缩写,意思是个人标识符,主要用于防止其他人克隆相同的组,因而也有人称它为SID,就是安全标识符。此标识符要求4-20个字符,对大小写敏感。
删除组:Drop GROUP group1[, group2, …]
此语句删除一个或多个组,这里的“group1”与“group2”等是要删除的组的名字。
2、用SQL创建一个工作组
我们用Create GROUP创建一个名为“Billing”的工作组,SQL语句如下:
Create GROUP
Billing;
这个语句创建了一个名为“Billing”工作的工作组,安全标识符使用的是系统默认的标识符。
3、用SQL一次创建多个工作组
如果想一条语句创建多个工作组,我们可以这样写:
Create GROUP
Billing, Shipping;
这条SQL语句将一次创建两个工作组:“Billing”与“Shipping”都使用系统默认的PID,工作组名之间用逗号分隔。
4、创建带PID的工作组
Create GROUP
Billing Gu294JxP1m, Shipping Kl27c5sI9h;
这样我们就创建了两个分别拥有不同PID的工作组,其他人如果不知道PID就无法克隆相同的工作组了,这样就增加了系统的安全性。
5、删除一个工作组
我们可以用“Drop GROUP”命令删除指定的工作组,如:
Drop GROUP
Billing;
该语句运行后,我们就会将名为“Billing”的工作组删除掉。
6、一次删除多个工作组
我们也可以用一条SQL语句一次删除多个工作组,工作组列表间用逗号分隔,例如:
Drop GROUP
Billing, Shipping;
Drop GROUP语句将删除指定的组。属于该组的用户不会受到影响,但他们将不再是已删除的组的成员。
二、用SQL语句创建与删除用户
1、创建与删除用户的SQL语法
创建用户:
Create USER user1 password1 pid1 [, user2 password2 pid2, ...]
此语句将创建一个或多个用户。
删除用户:
Drop USER user1[, user2, …]
此语句将删除一个或多个用户。
Create USER或Drop USER语句包含以下部分:
部分
|
说明
|
user1, user1
|
要创建的用户的名称。
|
password1, password2
|
与指定的用户名称相关联的密码。
|
pid1, pid2
|
个人标识符。
|
用户与组不能同名。所创建的每个用户必须要有password(密码)。
2、创建一个用户
Create USER Tim
pwd;
在数据库中创建一个名为“Tim”的用户,其用户口令为“pwd”,且使用系统默认的PID(个人标识符)。
3、创建多个用户
Create USER Tim
pwd, Sarah pwd, Steve pwd, Mary pwd;
此语句一次创建多个用户,并使用系统PID。
4、创建一个用户并指定其PID
Create USER Tim
pwd H3sJaZ9k2m;
5、创建多个用户并指定其PID
Create USER Tim
pwd H3sJaZ9k2m, Sarah pwd H3sJaZ9k2m, Steve pwd H3sJaZ9k2m, Mary pwd H3sJaZ9k2m
6、删除一个用户
Drop USER Tim;
7、一次删除多个用户
Drop USER Tim,
Sarah, Steve, Mary;
三、用SQL语句管理用户密码及其所属的组
1、修改用户密码的SQL语法
Alter USER user PASSWORD newpassword oldpassword
修改用户密码的Alter
USER语句包含以下部分:
部分
|
说明
|
user
|
要修改密码的用户的名称。
|
newpassword
|
与指定的user名称相关联的新密码。
|
oldpassword
|
与指定的user名称相关联的现有密码。
|
2、修改用户密码示例
Alter USER Tim
PASSWORD tim pwd;
Alter USER Sarah
PASSWORD sarah pwd;
Alter USER Steve
PASSWORD steve pwd;
Alter USER Mary
PASSWORD mary pwd;
由于修改密码的Alter
USER语句一次只能修改一个用户的密码,要修改多个用户就必须多次使用此语句。
3、用SQL将用户添加到组的语法
ADD USER user1[, user2, …] TO group
ADD USER语句包含以下部分:
部分
|
说明
|
user1, user2
|
要添加到工作组信息文件中的用户的名称。
|
group
|
要添加到工作组信息文件中的组的名称。
|
只要用户被添加到组中,这个用户就拥有已授予该组的所有权限。
4、将用户添加到组的示例
将一个用户添加到组:
ADD USER Tim TO
Billing;
将多个用户一次加入到组:
ADD USER Tim,
Sarah TO Billing;
ADD USER Steve,
Mary TO Shipping;
ADD USER Tim,
Sarah, Steve, Mary TO Users;
请注意,一次只能将一批用户加入到一个组,要将用户加入到多个组需要多次使用些语句。
5、用SQL将用户从组中移除的语法
Drop USER user1[, user2, …] FROM group;
Drop USER…FROM语句包含以下部分:
部分
|
说明
|
user1, user1
|
要从工作组信息文件中删除的用户的名称。
|
group
|
组的名称。
|
SQL的Drop USER…FROM语句将在该语句中列出的每个用户都将从FROM关键字后面所指定的组中删除。然而,用户自身不会被删除。
6、将用户从组中移除示例
一次移除一个用户:
Drop USER Tim
FROM Billing;
一次移除多个:
Drop USER Tim,
Sarah FROM Billing;
Drop USER Steve,
Mary FROM Shipping;
Drop USER Tim,
Sarah, Steve, Mary FROM Users;
由于Drop USER…FROM语句一次只能将一个或一批用户从一个组中移队,若要从多个组中移除需要多次运用此语句来完成。