精华内容
下载资源
问答
  • 本次实验为自定任务,我选择了一个与自主存取控制有关的实验。 设有一个企业,包括采购、销售和客户管理等三个部门,采购部门经理David,采购员Fred;销售部门经理Tom,销售员Jerry;客户管理部门经理Kathy,职员...

    一、实验题目
    本次实验为自定任务,我选择了一个与自主存取控制有关的实验。
    设有一个企业,包括采购、销售和客户管理等三个部门,采购部门经理David,采购员Fred;销售部门经理Tom,销售员Jerry;客户管理部门经理Kathy,职员Ron。该企业一个信息系统覆盖采购、销售和客户管理等三个部门的业务。针对此应用场景,使用自主存取控制机制设计一个具体的权限分配方案。
    二、相关原理与知识
    (完成实验所用到的相关原理与知识)
    1.定义模式
    在SQL语句中模式定义语句如下:
    CREATE SCHEMA <模式名>AUTHORIZATION<用户名>;
    2.定义基本表
    CREATE TABLE<表名> (<列名><数据类型> [列级完整性约束条件]
    [,<列名><数据类型> [列级完整性约束条件]]

    [,<表级完整性约束条件>]);
    3.授予
    GRANT<权限>[,<权限>]…
    ON<对象类型><对象名>[,<对象类型><对象名>]…
    TO<用户>[,<用户>]…
    [WITH GRANT OPTION];
    4.收回
    REVOKE<权限>[,<权限>]…
    ON<对象类型><对象名>[,<对象类型><对象名>]…
    FROM<用户>[,<用户>]…
    [CASCADE|RESTRICT]
    5.创建数据库模式的权限
    CREATE USER
    6.创建角色
    CREATE ROLE <角色名>
    创建的角色是空的,需要给角色授权。
    GRANT<权限>[,<权限>]…
    ON<对象类型><对象名>[,<对象类型><对象名>]…
    TO<角色>[,<角色>]…
    三、实验过程
    (清晰展示实际操作过程,相关截图及解释)
    方案构想:
    由于题目没有具体给出要实现怎样的权限分配,所以我在这里发挥想象给个职位权限做一下安排。首先对于该系统用户可以简单分三类,客户、职员与经理。客户拥有与其相关部门的信息的查询权利,职员具有对所处部门信息的查询和插入权限,而经理拥有对本部门的所有权利和对其他部门的查询权限。我们可以看出经理的权限最大,包含职员和客户的权限,而职员的权限包含客户的权限。
    方案实现过程:
    1.建立以@@@命名模式;
    2.建立如下六个表:
    本次实验主要是练习自主存取控制,对于表没有太高要求,但是为了便于之后的实验,这里建立三组六个简易的表。
    采购部门:
    SUPPLIER表:SUPPLIER(Sname,Sprice),其中Sname为主码;
    MATERIALS表:MATERIALS(Mname,Mprice),其中Mname为主码;
    销售部门:
    MARKET表:MARKET(Mno,Mprice),其中Mno为主码;
    OEDERFORM表:OEDERFORM(Ono),其中Ono为主码;
    客户管理部门:
    CUSTOMER表:CUSTOMER(Cno,Cname),其中Cno为主码;
    NATION表:NATION(Nname),其中Nname为主码;
    建立模式和表后可以得到如下目录:
    在这里插入图片描述
    3.创建用户:
    (1)为各部门经理创建用户
    为采购、销售和客户管理等三个部门的经理David、Tom、Kathy创建用户标识,具有创建用户和角色的权利(WITH CREATEROLE),用户口令设为‘1234’。
    (2)为各部门职员创建用户
    为采购、销售和客户管理等三个部门的职员创建用户标识和用户口令为‘1234’。
    在这里插入图片描述
    在这里插入图片描述
    4.创建角色:
    (1)为各部门分别创建一个客户角色。
    为采购部门建立客户角色PCustomerRole,为销售部门建立客户角色SCustomerRole,为客户管理部门建立客户角色CCustomerRole。
    (2)为各部门分别创建一个职员角色
    为采购部门建立职员角色PEmployeeRole,为销售部门建立职员角色SEmployeeRole,为客户管理部门建立职员角色CEmployeeRole。
    (3)为各部门分别创建一个经理角色
    为采购部门建立经理角色PManagerRole,为销售部门建立经理角色SManagerRole,为客户管理部门建立经理角色CManagerRole。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    5.给角色分配权限
    1)为客户角色分配权限
    客户对相关部门的信息具有查询权限,为各个部门的角色分配相应的权限。
    为这三个角色分配查询权限,采购部门的角色PCustomerRole只能够查询MATERIALS表和SUPPLIER表;销售部门的角色SCustomerRole只能够查询ORDERFORM表和MARKET表;客户管理部门的角色CCustomerRole只能够查询NATION表和CUSTOMER表。
    (2)为职员角色分配权限
    职员对本部门的信息具有查询和插入权限,为各个部门的角色分配相应的权限。
    为这三个角色分配查询和插入权限,采购部门的角色PEmployeeRole只能够对MATERIALS表和SUPPLIER表进行查询和插入;销售部门的角色SEmployeeRole只能够对ORDERFORM表和MARKET表进行查询和插入;客户管理部门的角色CEmployeeRole只能够对NATION表和CUSTOMER表进行查询和插入。
    在这里插入图片描述
    在这里插入图片描述
    (3)为经理角色分配权限
    经理对本部门的信息具有完全的控制权限,对其他部门的信息也具有查询权限。也就是说对于PManagerRole来说,他拥有对MATERIALS表和SUPPLIER表的所有操作的权限,同时还拥有ORDERFORM表、MARKET表、NATION表和CUSTOMER表的查询权限;同理,SManagerRole拥有对ORDERFORM表和MARKET表的所有权限同时他又有对MATERIALS表、SUPPLIER表、NATION表和CUSTOMER表的查询权限,CManagerRole拥有对NATION表和CUSTOMER表的所有权限,同时他拥有对ORDERFORM表、MARKET表、MATERIALS表和SUPPLIER表的查询权限。
    又因为各部门的客户角色拥有对各部门的查询权限,所以我们可以直接在将本部门所有权限赋予本部门的经理后,将其他部门的查询权以其他部门客户角色的形式赋给本部门的经理。
    6.给用户分配权限
    因为我们刚刚已经创建了角色并给角色分配了权限,所以此时只需把角色分配给相应的人员即可。这样,使权限与职位(角色)挂钩,便于在以后的人事调动对权限的调整。
    (1)给各部门经理分配权限
    (2)给各部门职员分配权限
    只需将职位角色授予对应的用户即可。
    7.收回用户或角色权限
    (1)收回客户管理部门职员Ron的职员权限
    这里我假设Ron请求辞退,由于Ron以后不再是客户管理部门的职员,所以我们需要将他的权限收回。
    这是收回用户权限。
    (2)收回采购部门经理查看销售部门信息的权限
    假设公司出台新规定,新规定的要求采购部门的经理不能查询销售部门的信息,此时我们需要把采购部门经理对销售部门信息的查询权限收回。
    这是收回角色权限。
    四、实验结果与分析
    本次实验实现了创建用户、创建角色、给角色授权、给用户授权和回收权限等与自主存取控制方法相关的练习。大多数数据库管理系统都支持自主存取控制,主要通过SQL语句的GRANT 和REVOKE语句来实现。创建不同的用户和不同的角色,通过给角色授权使其具有不同的权限,再将具有不同权限的角色授权给相应的用户,因此,不同的用户可以根据不同的实际需要拥有不同的权限,而且可以允许用户将拥有的权限转授给其他用户。这样,不同的数据库用户对不同的或相同的数据库对象可以有着不同的权限。
    数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。存取控制机制主要包括定义用户权限和合法权限检查两部分。
    在自主存取控制方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将拥有的存取权限转授给其他用户。因此自主存取机制十分灵活。
    五、问题总结
    (记录所遇到的问题及解决方法)
    遇到问题:书上的例题中使用“with grant option”表示允许将此权限再授予其他用户,而我在学习过程中发现也有使用“with admin option”表示同一含义,那二者的区别是什么。
    解决办法:上网查阅with admin option与with grant option的区别。
    with admin option的意思是被授予该权限的用户有权将某个权限(如create any table)授予其他用户或角色,取消是不级联的。如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限。但管理员可以显式收回B create session的权限,即直接revoke create session from B.
    with grant option的意思是:权限赋予/取消是级联的,如将with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
    六、源代码
    (源程序)
    建立模式:

    CREATE SCHEMA @@@
    

    建立表:

    SET search_path TO @@@;
    CREATE TABLE  CUSTOMER
    (Cno CHAR(9) PRIMARY KEY,
    Cname CHAR(20)); 
    
    SET search_path TO @@@;
    CREATE TABLE NATION
    (Nname CHAR(9) PRIMARY KEY);
    
    SET search_path TO @@@;
    CREATE TABLE SUPPLIER
    (Sname CHAR(9) PRIMARY KEY,
    Sprice CHAR(20));
    
    SET search_path TO @@@;
    CREATE TABLE MATERIALS
    (Mname CHAR(9) PRIMARY  KEY,
    Mprice  CHAR(20)); 
    
    SET search_path TO @@@;
    CREATE TABLE ORDERform
    (Ono CHAR(25) PRIMARY KEY); 
    
    SET search_path TO @@@;
    CREATE TABLE market
    (Mno CHAR(10) PRIMARY KEY,
     Mprice CHAR(25)); 
    

    创建用户:
    (1)部门经理

    CREATE USER David WITH CREATEROLE PASSWORD '1234';
    CREATE USER Tom WITH CREATEROLE PASSWORD '1234';
    CREATE USER Kathy WITH CREATEROLE PASSWORD '1234';
    

    (2)部门职员

    CREATE USER Fred WITH PASSWORD '1234';
    CREATE USER Jerry WITH PASSWORD '1234';
    CREATE USER Ron WITH PASSWORD '1234';
    

    创建角色:
    (1)客户角色

    CREATE ROLE PCustomerRole;
    CREATE ROLE SCustomerRole;
    CREATE ROLE CCustomerRole;
    

    (2)职员角色

    CREATE ROLE PEmployeeRole;
    CREATE ROLE SEmployeeRole;
    CREATE ROLE CEmployeeRole;
    

    (3)经理角色

    CREATE ROLE PManagerRole;
    CREATE ROLE SManagerRole;
    CREATE ROLE CManagerRole;
    

    为角色分配权限:
    (1)为各个部门相应的客户角色分配查询权限。

    GRANT SELECT ON TABLE MATERIALS TO PCustomerRole;
    GRANT SELECT ON TABLE SUPPLIER TO PCustomerRole;
    GRANT SELECT ON TABLE ORDERFORM TO SCustomerRole;
    GRANT SELECT ON TABLE MARKET TO SCustomerRole;
    GRANT SELECT ON TABLE NATION TO CCustomerRole;
    GRANT SELECT ON TABLE CUSTOMER TO CCustomerRole;
    

    (2)为各个部门职员角色分配查询和插入权限。

    GRANT SELECT,INSERT ON TABLE MATERIALS TO PEmployeeRole;
    GRANT SELECT,INSERT ON TABLE SUPPLIER TO PEmployeeRole;
    GRANT SELECT,INSERT ON TABLE ORDERFORM TO SEmployeeRole;
    GRANT SELECT,INSERT ON TABLE MARKET TO SEmployeeRole;
    GRANT SELECT,INSERT ON TABLE NATION TO CEmployeeRole;
    GRANT SELECT,INSERT ON TABLE CUSTOMER TO CEmployeeRole;
    

    (3)为各个部门经理角色分权限。

    GRANT ALL ON TABLE MATERIALS TO PManagerRole;
    GRANT ALL ON TABLE SUPPLIER TO PManagerRole;
    GRANT ALL ON TABLE ORDERFORM TO SManagerRole;
    GRANT ALL ON TABLE MARKET TO SManagerRole;
    GRANT ALL ON TABLE NATION TO CManagerRole;
    GRANT ALL ON TABLE CUSTOMER TO CManagerRole;
    GRANT PCustomerRole TO CManagerRole;
    GRANT SCustomerRole TO CManagerRole;
    GRANT SCustomerRole TO PManagerRole;
    GRANT CCustomerRole TO PManagerRole;
    GRANT PCustomerRole TO SManagerRole;
    GRANT CCustomerRole TO SManagerRole;
    

    给用户分配权限:
    (1)给部门经理分配权限

    GRANT PManagerRole TO David WITH ADMIN OPTION;
    GRANT SManagerRole TO Tom WITH ADMIN OPTION;
    GRANT CManagerRole TO Kathy WITH ADMIN OPTION; 
    

    (2)给职工分配权限

    GRANT PEmployeeRole TO Fred;
    GRANT SEmployeeRole TO Jerry;
    GRANT CEmployeeRole TO Ron;
    

    回收权限:
    (1)回收Ron的客户管理部门职员权限

    REVOKE SEmployeeRole FROM Ron; 
    

    (2)回收采购部门经理查看销售部门信息的权限

    REVOKE SCustomerRole FROM PManagerRole;
    
    展开全文
  • 存取(访问)控制

    2020-04-24 18:52:54
    1.含义存取控制就是让授权用户可以访问数据,非授权用户不可以接近数据。 2.实现方法:定义用户权限,合法检测权限。即规定用户有什么权限,当用户要执行某种操作时,查询用户字典,看用户是否有权限,如果有权限...

    1.含义:存取控制就是让授权用户可以访问数据,非授权用户不可以接近数据。
    2.实现方法:定义用户权限,合法检测权限。即规定用户有什么权限,当用户要执行某种操作时,查询用户字典,看用户是否有权限,如果有权限则执行成功,否则执行失败。
    3.自主存取控制:用户将自己的部分或者全部权限授予给其他人。
    强制存取控制:给表中某些数据贴上一些密级标记,没有许可证的用户即使有访问这个表的权限,也不可访问加上密级的数据。

    展开全文
  • Domino数据库存取控制列表(ACL)

    千次阅读 2011-03-02 13:51:00
    在Domino中,数据库的存取控制列表是Domino安全性的重要组成部分,也是决定每个用户能否访问数据库的主要设置。每个数据库都有自己的存取控制列表(Access Control List, 以下简称ACL)。打开一个数据库,选择菜单...

    在Domino中,数据库的存取控制列表是Domino安全性的重要组成部分,也是决定每个用户能否访问数据库的主要设置。每个数据库都有自己的存取控制列表(Access Control List, 以下简称ACL)。打开一个数据库,选择菜单“文件”-“数据库”-“存取控制”,就可以看到该数据库的ACL。

    ACL分为四个页面:基本、角色、日志和高级。以下分别说明这四个页面中的内容。并说明了ACL中可以接受的名称格式。

    ACL的“基本”页面

    ACL的核心功能都包含在“基本”页面中。在“个人/服务器/工作组”中选择“全部显示”,所有存取级别的用户都会被列出。也可以选择仅查看“管理者”、“设计者”等某个存取级别的用户。当选中某个用户名时,对话框中会显示他的用户类型和存取级别,以及与此存取级别相应的一些扩展和限制选项。用户类型和存取级别指定了用户对此数据库的最大权限。数据库的管理员可以增加、删除或修改用户的权限。


     

    七个存取级别
    ACL中共有七个存取级别:管理者、设计者、编辑者、作者、读者、存放者和不能存取者。了解这些级别的含义是了解ACL工作机制的基础。下图显示了每个存取级别的缺省权限,从不能存取者开始,每个级别都比下一级拥有更多的权限,直到拥有所有权限的管理者。(每个级别的权限都包含其下所有级别的权限)。

       不能存取者

    此级别表示用户没有任何权限,不能存取数据库。管理员可以开放给不能存取者的权限只有“读取公用文档”和“写公用文档”。关于公用文档的概念,见下面的“读写公用文档”部分。

       存放者和读者
    存放者只能向数据库中放入文档,但不能读取这些文档。读者则只能读文档,但不能向数据库中放入文档。二者都只具有单一的功能。(读者拥有一个额外的权限,可以执行代理)。

       作者
    作者可以创建、修改、删除文档。但是,要想使拥有作者权限的用户能够修改、删除文档,还需要作进一步的设置:要创建文档,需要选中“创建文档”选项。要修改文档,需要设置文档中的作者域。要删除文档,需要选中“删除文档”选项,同时需要设置文档中的作者域。
    在设计数据库时,有一类特殊的域称为作者域,这种域的类型是“作者”。在文档中,作者域可以包含用户、群组或角色的名称。如果一个用户在ACL中具有作者权限,同时,他的名字又包含在文档的作者域中,那么,这个用户就是该文档的所有者之一,可以修改此文档。如果用户未被包含在作者域中,则即使此文档是由他创建的,也无权修改它。
    作者域只对存取级别为作者的用户起作用。其他的存取级别不受作者域的限制。例如,存取级别为读者的用户,即使名字包含在作者域中,也无权修改文档;存取级别为编辑者以上的用户,不需要包含在作者域中也可以修改数据库中所有文档。
    因此,在设计数据库时,如果需要仅允许用户修改库中的一部分文档,则需要加入作者域,以细化用户的权限。

    编辑者
    编辑者具有更高的存取权限,可以修改数据库中的所有文档。通过各个子选项的设置,还可以赋予编辑者以下权限:删除文档,创建个人代理,创建个人文件夹/视图,创建共享文件夹/视图,创建LotusScript/Java代理。

    设计者
    作为设计者,用户可以修改数据库的设计,包括表单、视图等所有设计元素。通过子选项的设置,还可以赋予编辑者以下权限:删除文档和创建LotusScript/Java代理。如果不允许设计者创建LotusScript或Java代理,则他们不能对数据库中的LotusScript或Java代码进行修改。

    管理者
    管理者具有所有的权限,包括修改ACL本身。只有数据库的管理者才能赋予其他用户适当的权限。为了保证管理者不会误删文档,也可以将他们自己“删除文档”的权限去掉。

    返回

    创建代理和文件夹的选项
    与创建代理和文件夹有关的几个选项对从读者到设计者的存取级别都适用,因此有必要在此单独讨论。
    个人代理,顾名思义,只有创建它的用户自己能够运行它。例如,用户可以创建一个个人代理来对数据库中的文档进行排序。如果用户在数据库ACL中有适当的权限,他所创建的代理就可以对数据库进行操作。个人代理可以在服务器上后台运行,也可以在客户端上运行。
    共享代理则是供所有用户公用的代理,读者以上权限的用户都可以运行。
    每个用户都可以创建个人文件夹和视图。如果“创建个人文件夹/视图”选项被选中,用户所创建的个人文件夹和视图都将保存到服务器上的数据库中,会占用服务器的资源。如果此选项不选中,则用户所创建的个人文件夹和视图都将保存在客户端的桌面文件中。
    共享文件夹和视图保存在服务器上的数据库中,可供所有用户使用。用户要具有编辑者以上权限,“创建共享文件夹/视图”选项才可用。
    LotusScript和Java代理是运行LotusScript或Java语言的代理,可以创建这类代理的用户就不仅能够使用公式和简单操作,还可以使用这两种语言进行编程,完成较为复杂的功能。

    读写公用文档
    使用“读取公用文档”和“写公用文档”这两个选项可以让“不能存取者”或“存放者”读写特定的文档、表单、视图和文件夹,而不用给他们“读者”或“作者”的存取级别。要想使文档成为公用文档,数据库的设计者需要作两方面的设置。首先,在“表单”、“视图”和“文件夹”属性对话框的“安全性”附签中指定“对有公共存取权限的用户开放”选项。其次,希望对有公共存取权限用户开放的文档,必须包含一个名为 $PublicAccess 的域。$PublicAccess 域应该是文本域并且它的值应该等于1。


     

     

    五种用户类型
    ACL中的用户类型有五种:个人,服务器,混合组,个人组和服务器组。ACL中的每个名字都有自己的用户类型,当用户访问数据库时,所使用的ID文件的类型应与ACL中的用户类型相一致。
    个人和个人组
    当用户访问服务器时,Domino会为用户生成一个名称列表,表中包括用户打开数据库时可以使用的所有名字,包括用户的公用名和所属的所有组名。当用户打开一个数据库时,服务器可以检测到所使用的是用户自己的名字还是组名。
    如果在ACL中一个用户的名称被错误地指定为“个人组”类型,则该用户无法打开数据库,因为他不是用群组的身份访问数据库。
    服务器和服务器组
    服务器和服务器组都表示所用ID必须是服务器,不能用此身份从Notes客户端访问数据库。这就保证了用户必须使用自己的ID,在有适当权限的时候才能访问数据库,避免某些用户获取服务器ID后,在客户端切换到服务器的ID来访问数据库。例如,每个数据库的ACL中都包含的LocalDomainServers,就必须是服务器组类型,其中的每个成员都必须是一个服务器。
    混合组
    混合组中既可以包含用户也可以包含服务器。如果为某个名称指定了混合组类型,则无论使用个人的ID还是服务器的ID,无论从后台(服务器)访问还是从客户端访问,Domino都允许。

    综上所述,当用户不能访问数据库时,需检查ACL中的存取权限设置,也要检查用户类型是否正确。所指定的类型不正确时,也会影响用户的访问。


     

     

    返回

    ACL的“角色”页面
    角色是对存取权限进行细化的重要手段。初学者可能觉得角色很难理解,因为角色可以指定给ACL中的任一项目。从某种意义上来说,角色可以理解为仅在本数据库内部起作用的群组。当管理者希望在七级存取级别的基础上进一步细化存取权限时,可以使用角色。例如,角色可以在作者域、读者域、隐藏公式等地方使用。假设某个文档的读者域中只包含一个角色的名称,那么,不具有此角色的用户,即使拥有管理者权限也无法看到此文档。
    使用角色对数据库的设计者和管理者都很方便。对设计者来说,在开发阶段完全不必考虑最终用户的具体名称,也不必把群组的名称固定地写在代码中,只要定义并使用一系列角色即可。特别是对数据库模板的设计者来说,这一点更为方便。对管理者来说,不必为某个应用去修改公用通讯录,增加或删除群组,而只要将用户或群组的名称加入ACL,赋予他们适当的存取级别和角色,就可以让他们正常地使用该应用了。
    Domino自带的模板中,使用角色的例子很多。如公用通讯录中,就有[UserCreator]、[UserModifier]等8种角色,分别赋予用户不同的权限。

     


     

    ACL的“日志”页面
    日志页面显示了ACL的修改记录。其中包括每次对ACL项目进行的增加、删除和更新。不仅有用户对ACL所作的修改,也有服务器从后台修改ACL的记录。
    ACL也可以被签名,签名者的信息显示在ACL对话框的底部。签名信息描述了ACL最后是什么时候用哪个验证字修改的。

     


     

    ACL的“高级”页面
    高级页面中包括几项设置,以下分别说明。

     

     

     

    管理服务器
    在ACL中为数据库指定管理服务器之后,该服务器上的管理进程就可以对此数据库进行自动操作。例如,当删除了用户时,管理进程可以自动从ACL中删除该用户对应的项目。设置管理服务器可以保证ACL的自动更新,如果没有指定管理服务器,用户改名或删除后管理员需要手工更新数据库的ACL。
    管理员还可以指定管理服务器是否修改数据库中的读者域和作者域。如果用户在改名之后仍需保持原来的所有权限,则应使管理服务器修改数据库中的读者域和作者域;如果用户不再需要原来通过读者域和作者域所获得的权限,则应选择“不要修改读者和作者域”。
    管理服务器必须是数据库(或数据库的复本之一)所在的服务器。当指定了某个服务器是管理服务器后,在ACL的基本页面中,该服务器名称前面的图标会增加一把钥匙。

     

    此数据库的所有复本使用相同的存取控制列表
    当数据库在客户端本地被打开时,用户实际上获得了管理者权限,无论他在ACL中的实际权限是什么。这是由于安全性没有被强制遵守。如果选中了“此数据库的所有复本使用相同的存取控制列表”选项,用户在本地就不能获得比ACL中规定的更高的权限。如果用户修改了本地数据库复本的ACL,则此数据库复本将无法再与服务器上的数据库进行复制。
    此选项对服务器和客户端同样有效。如果一个服务器原来不是数据库的管理者,而此服务器上的复本的ACL被修改了,则此服务器上的复本将不能与其他服务器进行复制。
    注意,选中此选项并未减低服务器的存取权限,也不会为用户或服务器增加权限。这个选项只是保证复制时使用的是原来指定的权限。
    Internet用户的最大权限
    无论在ACL中用户是什么存取级别(即使用户是数据库的管理者),当用户从Web浏览器登录时,最多只能获得此选项指定的权限,缺省是编辑者。这样设置的原因是,基本Web身份验证(用户名和口令)并不是绝对安全,而且大部分设计和管理的工作从浏览器端也无法完成,那么,就没有必要对Internet用户开放这些权限了。例如,用户在ACL中是管理者权限,但Internet用户的最大权限是读者,当用户从浏览器访问数据库时,用户只能是读者权限;要想对数据库进行管理,该用户必须使用Notes客户端。
    查找类型为<未确定>的用户
    Lotus建议用户在ACL中使用用户类型,但用户类型并不是强制要选的。当向ACL中添加项目时,用户类型可以是“未确定”。为了减轻管理者的工作,Domino提供了“查找类型为<未确定>的用户”按钮。点击此按钮,Notes会自动查询类型为“未确定”的项目,自动为这些项目添加类型。
    例如,当ACL中有一个未确定类型的项目时,Notes会搜索公用通讯录,以确定此项目是用户还是群组。如果是群组,Notes会将此项目的类型设为混合组。出于性能方面的考虑,Notes不会逐一搜索群组中的每个成员,以确定其中是否只包含服务器。


     

    存取控制列表 (ACL) 中可接受的名称

    存取控制列表中可接受的项目包括用户、服务器和群组名称、数据库复本标识符、用于 Internet 用户存取和匿名 Notes 用户存取的“匿名”名称、Internet 客户机的用户和群组名称以及等价名。每个名称最多包含 255 个字符。
    通配符项目
    要允许对数据库的一般存取,可以在存取控制列表中输入带有通配符 (*) 的层次名称。可以在公共名称和组织单元部分使用通配符。层次名的相应成分中含有通配符的所有用户和/或服务器将获得对数据库指定的存取权限。
    例如,通配符格式的存取控制列表项目为:
    */Illustration/Production/Acme/US
    则Mary Tsen/Illustration/Production/Acme/US就拥有选定的存取级别,而Alan Nelson/Acme/US则没有此存取级别的权限。
    在存取控制列表项目的最左边只能使用一个通配符。例如:不能使用项目:
    */Illustration/*/Acme/US
    当使用带通配符的存取控制列表项目时,用户类型需设置为“未指定”、“混合组”或“个人组”。
    用户名称
    对于具有经过验证的 Notes 用户标识符的个人名称,或使用名称和口令或 SSL 客户机验证进行验证的 Internet 用户的名称,可以将其添加到存取控制列表中。

    • 如果正在添加的 Notes 用户名称与存储数据库的服务器的名称位于不同的层次组织,那么必须为此用户输入完整的层次名称,例如:John Smith/Sales/Acme。
    • 如果正在添加的 Notes 用户名称与存储数据库的服务器位于同一个层次组织,只需要输入其层次名的公共名称部分,例如:John Smith。为了确保更严密的名称安全性,最好使用完整的层次名。
    • 对于 Internet 客户,必须输入将要显示在“个人”文档的“用户名”域中的名字。存取控制列表中的“-Default-”存取项目和“Anonymous”项目必须设置为“不能存取者”;否则,Notes 将赋予 Internet 用户“-Default-”或“Anonymous”所具有的存取级别,而不是为用户指定的存取级别。


    服务器名称

    可以向存取控制列表中添加服务器的名称以控制数据库从数据库复本中接收的更改。

    • 如果正在添加的服务器名称与存储数据库的服务器位于不同的层次组织,那么必须为该服务器输入完整的层次名称,例如:Server1/Sales/Acme。
    • 如果正在添加的名称与存储数据库的服务器位于相同的层次组织,只需要输入层次名称的公共名称部分,例如:Server1。为了确保名称更严密的安全性,可以使用完整的层次名称。


    群组名称
    群组是对一个数据库需要相同存取权限的用户或服务器的列表。可以向存取控制列表中添加群组名(例如:Training)以表示需要相同存取权限的多个用户或服务器。存取控制列表中列出的任何群组,在添加到数据库存取控制列表之前必须已经存在于“Domino 目录”中,或者存在于“LDAP 目录”(在 Directory Assistance 数据库中已经为群组扩展配置了该目录)。
    群组提供了管理数据库存取控制列表的便利方法。Domino 管理员能够向存取控制列表中添加一个群组,而不是添加一长串单独的名称。如果对数据库的存取权限改变了,管理员只需改变群组名的存取权限,而不必对列表中的每一个单独名称进行改变。要新建包含在存取控制列表中的群组,必须对数据库有“管理者”存取级别。
    对于数据库的管理者,要使用单独的名称而不是群组名。于是,当用户选择“创建”“其他”“特殊便笺/给数据库管理员的便笺”时,他们可以知道自己在向谁寄信。
    在存取控制列表中使用群组有如下优点:

    • 如果需要改变几个用户或服务器的存取级别,可以只对整个群组进行一次改变。如果群组列在多个存取控制列表中,可以在中心位置(即“Domino 目录”或“LDAP 目录”)修改成员列表,而不是在多个数据库中添加和删除名称。
    • 可以使用群组来使某些用户能够控制数据库的存取但不能改变设计。例如:可以在“Domino 目录”中为每个所需的数据库存取级别创建群组,将此群组添加到存取控制列表中,并允许特定的用户拥有该群组。如果这些用户在存取控制列表中没有“管理者”或“设计者”的存取级别,他们就不能修改数据库的设计。
    • 群组名称可以反映群组成员的职责或部门和公司的组织结构。

    返回

    终止群组
    当雇员离开组织时,Domino 管理员应当从“Domino 目录”的所有群组中删除其名称,并将其添加到用于终止的群组中,该群组不能访问服务器。作为数据库管理者,您应当从您管理的所有数据库存取控制列表中删除终止的雇员名称。确保向存取控制列表中添加了终止群组并为此群组指定存取级别为“不能存取者”。
    等价名
    等价名是为已注册的 Notes 用户指定的可选别名。如果一个 Notes 用户有等价名,可以将其添加到存取控制列表中。等价名提供的安全性级别与主要的层次名称相同。用户必须列在群组中并有一个主要层次名或等价名。以等价名格式显示的用户名样例为:Sandy Smith/ANWest/ANSales/ANAcme,其中 AN 为等价名。
    LDAP 用户
    可以使用一个外部“LDAP 目录”验证 Web 用户。然后将这些 Web 用户的名称添加到数据库的存取控制列表以控制这些用户对数据库的访问。
    也可以在包含这些 Web 用户名的外部 LDAP 目录中创建群组,然后将这些组做为整体添加到 Notes 数据库的存取控制列表中。例如:Web 用户可能试图使用 Domino Web 服务器来访问某个数据库。如果该 Web 用户成功通过了验证,且在数据库的存取控制列表中有一个名为“Web”的群组,那么服务器除了在主“Domino 目录”中搜索 Web 用户名外,还可以在位于外部 LDAP 目录中的群组“Web”中查找项目。注意,要使这种情况有用,Web 服务器上的“目录服务”数据库必须为启用了“群组扩展”选项的 LDAP 目录包含一个“LDAP 目录服务”文档。还可以使用此功能来查询存储在外部 LDAP 目录群组中的 Notes 用户以进行数据库存取控制列表检查。
    向数据库的存取控制列表中添加 LDAP 目录用户或群组的名称时,请对名称使用 LDAP 格式,但使用斜杠 (/) 而不是逗号 (,) 作为分隔符。例如:如果 LDAP 目录中的用户名为:
    uid=Sandra Smith,o=Acme,c=US
    在数据库的存取控制列表中输入:
    uid=Sandra Smith/o=Acme/c=US
    如果在存取控制列表中输入了非层次结构的 LDAP 目录群组名称,则在项目中不要包含属性名,而只包含属性值。例如:如果 LDAP 群组名为:
    cn=managers
    在存取控制列表中只输入:
    managers
    不过,如果群组名为:
    cn=managers,o=acme
    则在存取控制列表输入:
    cn=managers/o=acme
    除了非层次结构群组名的情况下,在存取控制列表项目中要包含 LDAP 属性名。不过请注意,如果指定的属性名正好与 Notes 中使用的那些属性名 (cn, ou, o, c ) 一致,存取控制列表将不显示该属性。例如:如果在存取控制列表中输入下面的名称:
    cn=Sandra Smith/ou=West/o=Acme/c=US
    由于这些属性与 Notes 所使用的那些属性相对应,所以名称在存取控制列表中显示为:
    Sandra Smith/West/Acme/US
    匿名用户
    任何匿名访问远程服务器的用户或服务器都被该远程服务器认作“Anonymous”。匿名访问被提供给未与服务器进行验证的 Internet 用户和 Notes 用户。
    匿名访问通常提供给允许公共访问的服务器。通过在存取控制列表中输入名称“Anonymous”,可以控制授予匿名用户或服务器的数据库存取级别。典型地,可以给“Anonymous”用户指定对数据库具有“读者”存取级别。如果没有“Anonymous”项,则匿名用户将被赋予“-Default-”项的存取级别。
    Domino 服务器使用单独的群组名称“Anonymous”以进行存取控制检查。例如:如果“Anonymous”在数据库存取控制列表中有“作者”存取级别,则用户的真名会出现在那些文档的“作者”域中。在文档的“作者”域中,Domino 服务器只能显示匿名 Notes 用户的真实名称,而不能显示匿名 Web 用户的真实名称。不管是否使用了匿名存取,“作者”域都不是安全功能;如果安全性需要作者名的有效性,那么文档应该签名。
    复本标识符
    通过将其它数据库的复本标识符包括在您所管理的数据库中,可以让位于相同服务器上的其它数据库的代理使用 @DbColumn 或 @DbLookup 从您管理的数据库提取数据。数据库存取控制列表中的复本标识符的样例为 85255B42:005A8fA4。
    要确定数据库的复本标识符,选择“文件”“数据库”“属性”,并单击“信息”附签;或者选择“文件”“数据库”“设计摘要”,并选择“复制”。
    提取数据库对数据库至少要有“读者”存取级别。通过向数据库存取控制列表中添加其它数据库的复本标识符并且指定它有“读者”或更高的存取级别,可以提供此存取级别。向存取控制列表中添加复本标识符可以直接键入,或者从“设计摘要”中拷贝并粘贴到存取控制列表中。能够以大写或小写键入复本标识符,但是不要将其用引号引起来。如果没有向存取控制列表中添加复本标识符,但数据库“-Default-”项的存取级别是“读者”或更高时,其它数据库仍然可以提取数据。

    展开全文
  • Domino数据库存取控制列表(ACL)基本知识 在Domino中,数据库的存取控制列表是Domino安全性的重要组成部分,也是决定每个用户能否访问数据库的主要设置。每个数据库都有自己的存取控制列表(Access Control List, ...

    Domino数据库存取控制列表(ACL)基本知识

            在Domino中,数据库的存取控制列表是Domino安全性的重要组成部分,也是决定每个用户能否访问数据库的主要设置。每个数据库都有自己的存取控制列表(Access Control List, 以下简称ACL)。打开一个数据库,选择菜单“文件”-“数据库”-“存取控制”,就可以看到该数据库的ACL。

    ACL分为四个页面:基本、角色、日志和高级。以下分别说明这四个页面中的内容。并说明了ACL中可以接受的名称格式。

    ACL的“基本”页面

    ACL的核心功能都包含在“基本”页面中。在“个人/服务器/工作组”中选择“全部显示”,所有存取级别的用户都会被列出。也可以选择仅查看“管理者”、“设计者”等某个存取级别的用户。当选中某个用户名时,对话框中会显示他的用户类型和存取级别,以及与此存取级别相应的一些扩展和限制选项。用户类型和存取级别指定了用户对此数据库的最大权限。数据库的管理员可以增加、删除或修改用户的权限。 
     

    返回

    七个存取级别
    ACL中共有七个存取级别:管理者、设计者、编辑者、作者、读者、存放者和不能存取者。了解这些级别的含义是了解ACL工作机制的基础。下图显示了每个存取级别的缺省权限,从不能存取者开始,每个级别都比下一级拥有更多的权限,直到拥有所有权限的管理者。(每个级别的权限都包含其下所有级别的权限)。

    不能存取者
    此级别表示用户没有任何权限,不能存取数据库。管理员可以开放给不能存取者的权限只有“读取公用文档”和“写公用文档”。关于公用文档的概念,见下面的“读写公用文档”部分。

    存放者和读者
    存放者只能向数据库中放入文档,但不能读取这些文档。读者则只能读文档,但不能向数据库中放入文档。二者都只具有单一的功能。(读者拥有一个额外的权限,可以执行代理)。

    作者
    作者可以创建、修改、删除文档。但是,要想使拥有作者权限的用户能够修改、删除文档,还需要作进一步的设置:要创建文档,需要选中“创建文档”选项。要修改文档,需要设置文档中的作者域。要删除文档,需要选中“删除文档”选项,同时需要设置文档中的作者域。
    在设计数据库时,有一类特殊的域称为作者域,这种域的类型是“作者”。在文档中,作者域可以包含用户、群组或角色的名称。如果一个用户在ACL中具有作者权限,同时,他的名字又包含在文档的作者域中,那么,这个用户就是该文档的所有者之一,可以修改此文档。如果用户未被包含在作者域中,则即使此文档是由他创建的,也无权修改它。
    作者域只对存取级别为作者的用户起作用。其他的存取级别不受作者域的限制。例如,存取级别为读者的用户,即使名字包含在作者域中,也无权修改文档;存取级别为编辑者以上的用户,不需要包含在作者域中也可以修改数据库中所有文档。 
    因此,在设计数据库时,如果需要仅允许用户修改库中的一部分文档,则需要加入作者域,以细化用户的权限。

    编辑者
    编辑者具有更高的存取权限,可以修改数据库中的所有文档。通过各个子选项的设置,还可以赋予编辑者以下权限:删除文档,创建个人代理,创建个人文件夹/视图,创建共享文件夹/视图,创建LotusScript/Java代理。

    设计者
    作为设计者,用户可以修改数据库的设计,包括表单、视图等所有设计元素。通过子选项的设置,还可以赋予编辑者以下权限:删除文档和创建LotusScript/Java代理。如果不允许设计者创建LotusScript或Java代理,则他们不能对数据库中的LotusScript或Java代码进行修改。

    管理者
    管理者具有所有的权限,包括修改ACL本身。只有数据库的管理者才能赋予其他用户适当的权限。为了保证管理者不会误删文档,也可以将他们自己“删除文档”的权限去掉。

    返回

    创建代理和文件夹的选项
    与创建代理和文件夹有关的几个选项对从读者到设计者的存取级别都适用,因此有必要在此单独讨论。
    个人代理,顾名思义,只有创建它的用户自己能够运行它。例如,用户可以创建一个个人代理来对数据库中的文档进行排序。如果用户在数据库ACL中有适当的权限,他所创建的代理就可以对数据库进行操作。个人代理可以在服务器上后台运行,也可以在客户端上运行。
    共享代理则是供所有用户公用的代理,读者以上权限的用户都可以运行。
    每个用户都可以创建个人文件夹和视图。如果“创建个人文件夹/视图”选项被选中,用户所创建的个人文件夹和视图都将保存到服务器上的数据库中,会占用服务器的资源。如果此选项不选中,则用户所创建的个人文件夹和视图都将保存在客户端的桌面文件中。
    共享文件夹和视图保存在服务器上的数据库中,可供所有用户使用。用户要具有编辑者以上权限,“创建共享文件夹/视图”选项才可用。
    LotusScript和Java代理是运行LotusScript或Java语言的代理,可以创建这类代理的用户就不仅能够使用公式和简单操作,还可以使用这两种语言进行编程,完成较为复杂的功能。

    读写公用文档
    使用“读取公用文档”和“写公用文档”这两个选项可以让“不能存取者”或“存放者”读写特定的文档、表单、视图和文件夹,而不用给他们“读者”或“作者”的存取级别。要想使文档成为公用文档,数据库的设计者需要作两方面的设置。首先,在“表单”、“视图”和“文件夹”属性对话框的“安全性”附签中指定“对有公共存取权限的用户开放”选项。其次,希望对有公共存取权限用户开放的文档,必须包含一个名为 $PublicAccess 的域。$PublicAccess 域应该是文本域并且它的值应该等于1。

    五种用户类型
    ACL中的用户类型有五种:个人,服务器,混合组,个人组和服务器组。ACL中的每个名字都有自己的用户类型,当用户访问数据库时,所使用的ID文件的类型应与ACL中的用户类型相一致。
    个人和个人组
    当用户访问服务器时,Domino会为用户生成一个名称列表,表中包括用户打开数据库时可以使用的所有名字,包括用户的公用名和所属的所有组名。当用户打开一个数据库时,服务器可以检测到所使用的是用户自己的名字还是组名。如果在ACL中一个用户的名称被错误地指定为“个人组”类型,则该用户无法打开数据库,因为他不是用群组的身份访问数据库。
    服务器和服务器组
    服务器和服务器组都表示所用ID必须是服务器,不能用此身份从Notes客户端访问数据库。这就保证了用户必须使用自己的ID,在有适当权限的时候才能访问数据库,避免某些用户获取服务器ID后,在客户端切换到服务器的ID来访问数据库。例如,每个数据库的ACL中都包含的LocalDomainServers,就必须是服务器组类型,其中的每个成员都必须是一个服务器。
    混合组
    混合组中既可以包含用户也可以包含服务器。如果为某个名称指定了混合组类型,则无论使用个人的ID还是服务器的ID,无论从后台(服务器)访问还是从客户端访问,Domino都允许。

    综上所述,当用户不能访问数据库时,需检查ACL中的存取权限设置,也要检查用户类型是否正确。所指定的类型不正确时,也会影响用户的访问。

    返回

    ACL的“角色”页面
    角色是对存取权限进行细化的重要手段。初学者可能觉得角色很难理解,因为角色可以指定给ACL中的任一项目。从某种意义上来说,角色可以理解为仅在本数据库内部起作用的群组。当管理者希望在七级存取级别的基础上进一步细化存取权限时,可以使用角色。例如,角色可以在作者域、读者域、隐藏公式等地方使用。假设某个文档的读者域中只包含一个角色的名称,那么,不具有此角色的用户,即使拥有管理者权限也无法看到此文档。 
    使用角色对数据库的设计者和管理者都很方便。对设计者来说,在开发阶段完全不必考虑最终用户的具体名称,也不必把群组的名称固定地写在代码中,只要定义并使用一系列角色即可。特别是对数据库模板的设计者来说,这一点更为方便。对管理者来说,不必为某个应用去修改公用通讯录,增加或删除群组,而只要将用户或群组的名称加入ACL,赋予他们适当的存取级别和角色,就可以让他们正常地使用该应用了。
    Domino自带的模板中,使用角色的例子很多。如公用通讯录中,就有[UserCreator]、[UserModifier]等8种角色,分别赋予用户不同的权限。

    ACL的“日志”页面
    日志页面显示了ACL的修改记录。其中包括每次对ACL项目进行的增加、删除和更新。不仅有用户对ACL所作的修改,也有服务器从后台修改ACL的记录。
    ACL也可以被签名,签名者的信息显示在ACL对话框的底部。签名信息描述了ACL最后是什么时候用哪个验证字修改的。

    ACL的“高级”页面
    高级页面中包括几项设置,以下分别说明。

    管理服务器
    在ACL中为数据库指定管理服务器之后,该服务器上的管理进程就可以对此数据库进行自动操作。例如,当删除了用户时,管理进程可以自动从ACL中删除该用户对应的项目。设置管理服务器可以保证ACL的自动更新,如果没有指定管理服务器,用户改名或删除后管理员需要手工更新数据库的ACL。
    管理员还可以指定管理服务器是否修改数据库中的读者域和作者域。如果用户在改名之后仍需保持原来的所有权限,则应使管理服务器修改数据库中的读者域和作者域;如果用户不再需要原来通过读者域和作者域所获得的权限,则应选择“不要修改读者和作者域”。
    管理服务器必须是数据库(或数据库的复本之一)所在的服务器。当指定了某个服务器是管理服务器后,在ACL的基本页面中,该服务器名称前面的图标会增加一把钥匙,如图所示。
     

    此数据库的所有复本使用相同的存取控制列表
    当数据库在客户端本地被打开时,用户实际上获得了管理者权限,无论他在ACL中的实际权限是什么。这是由于安全性没有被强制遵守。如果选中了“此数据库的所有复本使用相同的存取控制列表”选项,用户在本地就不能获得比ACL中规定的更高的权限。如果用户修改了本地数据库复本的ACL,则此数据库复本将无法再与服务器上的数据库进行复制。
    此选项对服务器和客户端同样有效。如果一个服务器原来不是数据库的管理者,而此服务器上的复本的ACL被修改了,则此服务器上的复本将不能与其他服务器进行复制。
    注意,选中此选项并未减低服务器的存取权限,也不会为用户或服务器增加权限。这个选项只是保证复制时使用的是原来指定的权限。
    Internet用户的最大权限
    无论在ACL中用户是什么存取级别(即使用户是数据库的管理者),当用户从Web浏览器登录时,最多只能获得此选项指定的权限,缺省是编辑者。这样设置的原因是,基本Web身份验证(用户名和口令)并不是绝对安全,而且大部分设计和管理的工作从浏览器端也无法完成,那么,就没有必要对Internet用户开放这些权限了。例如,用户在ACL中是管理者权限,但Internet用户的最大权限是读者,当用户从浏览器访问数据库时,用户只能是读者权限;要想对数据库进行管理,该用户必须使用Notes客户端。
    查找类型为 <未确定> 的用户
    Lotus建议用户在ACL中使用用户类型,但用户类型并不是强制要选的。当向ACL中添加项目时,用户类型可以是“未确定”。为了减轻管理者的工作,Domino提供了“查找类型为 <未确定> 的用户”按钮。点击此按钮,Notes会自动查询类型为“未确定”的项目,自动为这些项目添加类型。
    例如,当ACL中有一个未确定类型的项目时,Notes会搜索公用通讯录,以确定此项目是用户还是群组。如果是群组,Notes会将此项目的类型设为混合组。出于性能方面的考虑,Notes不会逐一搜索群组中的每个成员,以确定其中是否只包含服务器。

    返回

    存取控制列表 (ACL) 中可接受的名称

    存取控制列表中可接受的项目包括用户、服务器和群组名称、数据库复本标识符、用于 Internet 用户存取和匿名 Notes 用户存取的“匿名”名称、Internet 客户机的用户和群组名称以及等价名。每个名称最多包含 255 个字符。
    通配符项目
    要允许对数据库的一般存取,可以在存取控制列表中输入带有通配符 (*) 的层次名称。可以在公共名称和组织单元部分使用通配符。层次名的相应成分中含有通配符的所有用户和/或服务器将获得对数据库指定的存取权限。 
    例如,通配符格式的存取控制列表项目为:
    */Illustration/Production/Acme/US 
    则Mary Tsen/Illustration/Production/Acme/US就拥有选定的存取级别,而Alan Nelson/Acme/US则没有此存取级别的权限。
    在存取控制列表项目的最左边只能使用一个通配符。例如:不能使用项目:
    */Illustration/*/Acme/US 
    当使用带通配符的存取控制列表项目时,用户类型需设置为“未指定”、“混合组”或“个人组”。
    用户名称
    对于具有经过验证的 Notes 用户标识符的个人名称,或使用名称和口令或 SSL 客户机验证进行验证的 Internet 用户的名称,可以将其添加到存取控制列表中。

    • 如果正在添加的 Notes 用户名称与存储数据库的服务器的名称位于不同的层次组织,那么必须为此用户输入完整的层次名称,例如:John Smith/Sales/Acme。
       
    • 如果正在添加的 Notes 用户名称与存储数据库的服务器位于同一个层次组织,只需要输入其层次名的公共名称部分,例如:John Smith。为了确保更严密的名称安全性,最好使用完整的层次名。
       
    • 对于 Internet 客户,必须输入将要显示在“个人”文档的“用户名”域中的名字。存取控制列表中的“-Default-”存取项目和“Anonymous”项目必须设置为“不能存取者”;否则,Notes 将赋予 Internet 用户“-Default-”或“Anonymous”所具有的存取级别,而不是为用户指定的存取级别。


    服务器名称
    可以向存取控制列表中添加服务器的名称以控制数据库从数据库复本中接收的更改。

    • 如果正在添加的服务器名称与存储数据库的服务器位于不同的层次组织,那么必须为该服务器输入完整的层次名称,例如:Server1/Sales/Acme。
       
    • 如果正在添加的名称与存储数据库的服务器位于相同的层次组织,只需要输入层次名称的公共名称部分,例如:Server1。为了确保名称更严密的安全性,可以使用完整的层次名称。


    群组名称
    群组是对一个数据库需要相同存取权限的用户或服务器的列表。可以向存取控制列表中添加群组名(例如:Training)以表示需要相同存取权限的多个用户或服务器。存取控制列表中列出的任何群组,在添加到数据库存取控制列表之前必须已经存在于“Domino 目录”中,或者存在于“LDAP 目录”(在 Directory Assistance 数据库中已经为群组扩展配置了该目录)。
    群组提供了管理数据库存取控制列表的便利方法。Domino 管理员能够向存取控制列表中添加一个群组,而不是添加一长串单独的名称。如果对数据库的存取权限改变了,管理员只需改变群组名的存取权限,而不必对列表中的每一个单独名称进行改变。要新建包含在存取控制列表中的群组,必须对数据库有“管理者”存取级别。
    对于数据库的管理者,要使用单独的名称而不是群组名。于是,当用户选择“创建”“其他”“特殊便笺/给数据库管理员的便笺”时,他们可以知道自己在向谁寄信。
    在存取控制列表中使用群组有如下优点:

    • 如果需要改变几个用户或服务器的存取级别,可以只对整个群组进行一次改变。如果群组列在多个存取控制列表中,可以在中心位置(即“Domino 目录”或“LDAP 目录”)修改成员列表,而不是在多个数据库中添加和删除名称。
       
    • 可以使用群组来使某些用户能够控制数据库的存取但不能改变设计。例如:可以在“Domino 目录”中为每个所需的数据库存取级别创建群组,将此群组添加到存取控制列表中,并允许特定的用户拥有该群组。如果这些用户在存取控制列表中没有“管理者”或“设计者”的存取级别,他们就不能修改数据库的设计。 
       
    • 群组名称可以反映群组成员的职责或部门和公司的组织结构。

    返回
     

    终止群组 
    当雇员离开组织时,Domino 管理员应当从“Domino 目录”的所有群组中删除其名称,并将其添加到用于终止的群组中,该群组不能访问服务器。作为数据库管理者,您应当从您管理的所有数据库存取控制列表中删除终止的雇员名称。确保向存取控制列表中添加了终止群组并为此群组指定存取级别为“不能存取者”。 
    等价名
    等价名是为已注册的 Notes 用户指定的可选别名。如果一个 Notes 用户有等价名,可以将其添加到存取控制列表中。等价名提供的安全性级别与主要的层次名称相同。用户必须列在群组中并有一个主要层次名或等价名。以等价名格式显示的用户名样例为:Sandy Smith/ANWest/ANSales/ANAcme,其中 AN 为等价名。
    LDAP 用户
    可以使用一个外部“LDAP 目录”验证 Web 用户。然后将这些 Web 用户的名称添加到数据库的存取控制列表以控制这些用户对数据库的访问。 
    也可以在包含这些 Web 用户名的外部 LDAP 目录中创建群组,然后将这些组做为整体添加到 Notes 数据库的存取控制列表中。例如:Web 用户可能试图使用 Domino Web 服务器来访问某个数据库。如果该 Web 用户成功通过了验证,且在数据库的存取控制列表中有一个名为“Web”的群组,那么服务器除了在主“Domino 目录”中搜索 Web 用户名外,还可以在位于外部 LDAP 目录中的群组“Web”中查找项目。注意,要使这种情况有用,Web 服务器上的“目录服务”数据库必须为启用了“群组扩展”选项的 LDAP 目录包含一个“LDAP 目录服务”文档。还可以使用此功能来查询存储在外部 LDAP 目录群组中的 Notes 用户以进行数据库存取控制列表检查。
    向数据库的存取控制列表中添加 LDAP 目录用户或群组的名称时,请对名称使用 LDAP 格式,但使用斜杠 (/) 而不是逗号 (,) 作为分隔符。例如:如果 LDAP 目录中的用户名为:
    uid=Sandra Smith,o=Acme,c=US
    在数据库的存取控制列表中输入:
    uid=Sandra Smith/o=Acme/c=US
    如果在存取控制列表中输入了非层次结构的 LDAP 目录群组名称,则在项目中不要包含属性名,而只包含属性值。例如:如果 LDAP 群组名为:
    cn=managers
    在存取控制列表中只输入:
    managers
    不过,如果群组名为:
    cn=managers,o=acme
    则在存取控制列表输入:
    cn=managers/o=acme
    除了非层次结构群组名的情况下,在存取控制列表项目中要包含 LDAP 属性名。不过请注意,如果指定的属性名正好与 Notes 中使用的那些属性名 (cn, ou, o, c ) 一致,存取控制列表将不显示该属性。例如:如果在存取控制列表中输入下面的名称:
    cn=Sandra Smith/ou=West/o=Acme/c=US
    由于这些属性与 Notes 所使用的那些属性相对应,所以名称在存取控制列表中显示为:
    Sandra Smith/West/Acme/US
    匿名用户
    任何匿名访问远程服务器的用户或服务器都被该远程服务器认作“Anonymous”。匿名访问被提供给未与服务器进行验证的 Internet 用户和 Notes 用户。
    匿名访问通常提供给允许公共访问的服务器。通过在存取控制列表中输入名称“Anonymous”,可以控制授予匿名用户或服务器的数据库存取级别。典型地,可以给“Anonymous”用户指定对数据库具有“读者”存取级别。如果没有“Anonymous”项,则匿名用户将被赋予“-Default-”项的存取级别。 
    Domino 服务器使用单独的群组名称“Anonymous”以进行存取控制检查。例如:如果“Anonymous”在数据库存取控制列表中有“作者”存取级别,则用户的真名会出现在那些文档的“作者”域中。在文档的“作者”域中,Domino 服务器只能显示匿名 Notes 用户的真实名称,而不能显示匿名 Web 用户的真实名称。不管是否使用了匿名存取,“作者”域都不是安全功能;如果安全性需要作者名的有效性,那么文档应该签名。 
    复本标识符
    通过将其它数据库的复本标识符包括在您所管理的数据库中,可以让位于相同服务器上的其它数据库的代理使用 @DbColumn 或 @DbLookup 从您管理的数据库提取数据。数据库存取控制列表中的复本标识符的样例为 85255B42:005A8fA4。
    要确定数据库的复本标识符,选择“文件”“数据库”“属性”,并单击“信息”附签;或者选择“文件”“数据库”“设计摘要”,并选择“复制”。
    提取数据库对数据库至少要有“读者”存取级别。通过向数据库存取控制列表中添加其它数据库的复本标识符并且指定它有“读者”或更高的存取级别,可以提供此存取级别。向存取控制列表中添加复本标识符可以直接键入,或者从“设计摘要”中拷贝并粘贴到存取控制列表中。能够以大写或小写键入复本标识符,但是不要将其用引号引起来。如果没有向存取控制列表中添加复本标识符,但数据库“-Default-”项的存取级别是“读者”或更高时,其它数据库仍然可以提取数据。
     


    展开全文
  • domino数据库存取控制列表(acl)基本知识_lotus notes 内容提要在Domino中,数据库的存取控制列表是Domino安全性的重要组成部分,也是决定每个用户能否访问数据库的主要设置。本文详述了存取控制列表的各项设置,...
  • 我在这里想说的是,里说这是一种编译器行为,编译结束后这些存取控制信息都会消失。也就是说,这些信息对链接器而言是透明的。所以我用下面的方式做了试验,证实了这个结论。 1.h class A { private:  int...
  • 数据库并发控制

    千次阅读 2012-12-28 19:51:42
    若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?  答:并发...
  • 文件的结构及存取方法

    千次阅读 2016-10-11 12:42:22
    文件的组织形式是文件的结构,从不同的角度分析文件有...文件的逻辑结构独立于辅存,帮助用户分析信息之间的关系及含义;而物理结构主要关注文件信息的存储形式,帮助用户了解与存储设备相关知识。 1、文件的逻辑结构
  • Python基于分隔符的文本数据存取

    千次阅读 2021-02-13 16:59:42
    文本文件的数据存取基于分隔符的文本数据文件 文本型文件是常见的可以用来存储数据的文件,使用文本文件存储数据的优点在于直观、存取方便,不足之处在于数据量达到一定规模后,读写和检索的速度会变得较为缓慢。 ...
  • 第八章数据库并发控制    一、选择题 1.为了防止一个用户的工作不适当地影响另一个用户,应该采取(D)。 A....完整性控制 B....访问控制 C....存取控制  C.恢复 D.协商 3.下列不属于并发操作带来的
  • 目录实现之文件的按名存取

    千次阅读 2016-10-19 15:06:37
    为了实现用户对文件的按名存取: -------->系统必须首先利用用户提供的文件名 ----------->对文件目录进行查询 ------------->找出该文件的文件控制块FCB --------------->(对UNIX系统即要找出该文件的索引节点,...
  • 数据库题目之并发控制

    千次阅读 2019-01-11 09:45:17
    存取控制 D .协商 【答案:】 A 5、若事务 T 对数据 R 已经加 X 锁,则其他事务对数据 R   。 A .可以加 S 锁不能加 X 锁 B .不能加 S 锁可以加 X 锁 C .可以加 S 锁也可以加 X 锁 D .不能...
  • 图可以包含的寓意和含义是文字不能比拟的,先有一个效果图你也就知道这篇文章的主要内容是关于什么问题的,省去了一大堆文字的累述,看下面这张图:    这个需求就是要实现某个人具有另外一种特性,具有...
  • Mifare S50每个块(包括数据块和控制块)的存取条件是由密钥和访问控制条件共同决定的,访问控制条件四个字节(其中字节9为备用字节)所表示的含义如表格所示(注:_b表示取反)其中,在存取控制中每个块都有相应的...
  • 关系数据库——并发控制

    千次阅读 多人点赞 2019-12-02 14:04:03
    并发控制 多用户数据库:允许多个用户同时使用的数据库(订票系统) 不同的多事务执行方式: 1.串行执行:每个时刻只有一个事务运行,其他事务必须等到这个事务结束后方能运行。 2.交叉并发方式: 单处理机...
  • 安全编程-权限控制

    千次阅读 2014-11-27 10:15:48
    一般在权限控制中包含3个方面: 主体,是一个主动地实体,它可以提出对一些资源或者数据的访问请求,主体可以是能够访问信息的用户或进程。客体,是含有被访问信息的被动实体,客体可以是计算机、数据库、文件...
  • windows访问控制列表ACL

    千次阅读 2019-07-15 12:56:32
    文章目录术语定义分类DACLSACL安全对象(so) &...windows访问控制列表 --ACL(Access Control List) 关于授权(authorization) 与 访问控制(Acess Control) 微软官网详细介绍: https://docs.microsoft.com/zh-cn...
  • 数据库并发控制详解

    千次阅读 2019-04-16 11:05:20
    1. 什么是并发控制? 数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对...
  • 多种数据库的并发控制比较

    千次阅读 2007-03-06 20:20:00
    多种数据库的并发控制比较内容:比较的ORACLE INFORMIX DB2 SYBASE MSSQL等的并发控制机制。比较分析悲观与乐观并发控制机制的异同。引言:l 在关系数据库(DB2,Oracle,Sybase,Informix和SQL Server)最小的恢复...
  • Linux安全访问控制模型

    千次阅读 2014-01-14 14:43:32
    本文通过研究安全操作系统的访问控制模型,结合国内、外的相关安全标准和已有的先进技术,将密码服务与高级别存取控制机制有机地结合起来,形成一个适应各类安全2级实用操作系统。该安全服务器将在Linux操作系统的...
  • 控制中的各种函数MATLAB仿真

    万次阅读 多人点赞 2015-05-14 11:34:33
    控制系统的MATLAB仿真 1 MATLAB简介 MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB不仅可以处理代数问题和数值分析...
  • 今天给大侠带来基于FPGA的以太网控制器(MAC)设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,以太网基本原理以及以太网控制器(MAC)的基本框架。话不多说,上货。 导读 当前,互联网已经极大...
  • RCS版本控制系统简介

    千次阅读 2009-10-08 19:50:00
    版本控制是指跟踪和管理源代码文件变化的自动过程。RCS(Revision Control System),是最常用的版本控制解决方案,之后有两个工具可以替代RCS,一个是SCCS(Source Code Control System),另外一个是CVS(Concurrent ...
  • 比如当某一列有10个999的整数时,就不必把10个999依次排列,而是在999前面加一个10,就表达了10个999的含义。如果有增加或者删除999的操作时,只需要对10这个位置的参数进行修改,而不用修改999本身。行存储模型则...
  • GSD文件含义

    千次阅读 2019-01-24 10:40:48
    GSD即电子设备数据库文件,用于Profibus-Dp主站与从站交换数据时的参考数据,当主站与从站使用简介组态时,可以利用组态工具存取当前的参数和有关DP从站的GSD数据(电子设备数据库文件)?。 GSD 文件的组成: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,377
精华内容 16,550
关键字:

存取控制含义