了解用户和组账户与DB2 UDB的交互
2007-05-20 16:19:46 来源:WEB开发网如果遇到这样的消息,一定要确认连接到数据库的用户或应用程序是否提供了合法的用户 ID 和口令。该用户 ID 和口令必须存在于执行用户身份验证的设施中(由目标 DB2 UDB 实例的 AUTHENTICATION 参数决定)。
授权
授权是决定指定用户 ID 对特定数据库对象和动作的访问和特权信息的过程。DB2 UDB 在内部存储和维护用户/组的授权信息。每当提交一个命令时,DB2 UDB 执行授权检查以保证您有执行该动作的正确特权。
特权可以授予特定的用户或者用户组。用户和组的定义本身同样在 DB2 UDB 外部定义。作为组成员的用户自动继承该组的特权。授予用户的特定权限优先于和该用户参与的任何组关联的特权,并且一直有效,即使后来从组中删除了用户。就是说,明确授予用户的特权必须明确收回。
多数数据库对象都由一组相关的权限,可使用 SQL 语句 GRANT 和 REVOKE 分配给用户和组。比如,下面的 SQL 语句将 ADM.ACCTABC 表的 SELECT 权限授予用户 bob:GRANT SELECT ON TABLE ADM.ACCTABC TO USER BOB。
一旦发出该语句,用户 bob 就可以提交引用该表的 SELECT 语句。类似的,下面的 SQL 语句从 clerks 组收回 ADM.LEGERS 视图的 INSERT 权限:REVOKE INSERT ON VIEW ADM.LEGERS FROM GROUP CLERKS。
只能收回以前授予的权限。关于能够授予用户和组的各种数据库对象特权的详细信息,请参阅 DB2 UDB 文当。
必须指出,特别是对 DB2 UDB 新用户,GRANT 语句不会检验用户和组帐户是否存在于外部设施中。这意味着,可以把权限和数据库中存储的信息授予不存在的用户和组帐户。这就造成了一种错误的印象,即可以在 DB2 UDB 中定义用户和组。比方说,连接到 finance 数据库时可以发出下面的语句:
更多精彩
赞助商链接