📜  Teradata用户管理

📅  最后修改于: 2021-01-11 11:44:10             🧑  作者: Mango

Teradata用户管理

Teradata数据库管理员负责管理数据库中的用户。他们将为每个具有有限空间和访问数据库对象权限的用户创建Teradata帐户。

用户数

使用CREATE USER命令创建用户。在Teradata中,用户也类似于数据库。它们既可以分配空间,又可以包含数据库对象,只是为用户分配了密码。

我们必须向需要它的任何用户明确授予CREATE USER或USER特权,但用户DBC除外,后者默认情况下具有这些特权。用户的创建者会自动收到该用户的DROP USER特权。

句法

以下是CREATE USER的语法。

CREATE USER username 
AS  
[PERMANENT/PERM] = n BYTES 
PASSWORD = password 
TEMPORARY = n BYTES 
SPOOL = n BYTES;
  • CREATE USER用户名:单个Teradata数据库用户的名称。我们不能允许多个用户共享用于访问数据库的用户名。
  • PERM:可用于包含用户创建或拥有的对象的字节空间。永久空间不能超过用户的直接所有者的当前PERM,后者通常是CREATE USER语句的FROM子句中指定的数据库或用户。
  • PASSWORD =密码:临时密码。如果系统是根据创建安全管理员用户时的建议设置的,则系统会在首次登录时提示用户将临时密码更改为专用密码。
  • 临时:仅诸如全局临时表和易失性表之类的对象需要临时空间。在为用户分配临时空间之前,我们应该制定一种策略来使用需要临时空间的数据库对象。我们稍后可以使用MODIFY USER或MODIFY PROFILE语句添加临时空间规范。
  • SPOOL:定义用户可用于中间查询结果,易失表或格式化的查询答案集的最大空间量。系统从未使用的系统烫发空间(例如,创建假脱机空间储备中的假脱机储备)中借用假脱机空间。在配置文件中指定的假脱机空间优先于在CREATE USER语句中定义的假脱机空间。除非用户需要唯一的后台处理注意事项,否则将后台处理空间指定为配置文件的一部分。假脱机空间分配应约为用户访问的最广泛的数据库可用的烫发空间的20%。

注意:在创建用户时,用户名,永久空间和密码的值是必填项。但是其他字段是可选的。

以下是创建用户T001的示例。

CREATE USER T001 
AS  
PERMANENT = 1000000 BYTES 
PASSWORD = ABC@999 
TEMPORARY = 1000000 BYTES 
SPOOL = 1000000 BYTES;

帐目

CREATE USER中的ACCOUNT选项用于分配帐户。创建新用户时,可以将用户分配给:

  • 用户,但配置文件包含多个帐户。默认值为字符串的第一个帐户。用户可以提交SET SESSION ACCOUNT语句,以将当前会话的默认设置设置为其他帐户之一。
  • 用户和个人资料仅包含一个帐户。默认值为配置文件中定义的帐户。
  • 用户,但个人资料不包含帐户。默认值为用户的直接所有者的帐户标识符。
  • 未分配给用户,默认值为用户的直接所有者的帐户标识符。

注意

  • 如果用户定义指定帐户而不是配置文件,则默认帐户是用户定义中的帐户字符串。
  • 如果您为用户分配了配置文件,并且该配置文件指定了帐户字符串,则该配置文件帐户对该用户的AMPUsage和DBQL有效。但是,系统使用在DBC.DatabaseV视图中找到的值进行空间核算。

句法

以下是带有account选项的CREATE USER的语法。

CREATE USER username 
PERM = n BYTES 
PASSWORD = password 
ACCOUNT = accounted

以下示例创建用户T002,并将该帐户分配为IT和Admin。

CREATE USER T002 
AS  
PERMANENT = 1000000 BYTES 
PASSWORD = ABC@123 
TEMPORARY = 1000000 BYTES 
SPOOL = 1000000 BYTES 
ACCOUNT = ('IT', 'Admin');

用户可以在登录Teradata系统时或使用SET SESSION命令登录系统后指定帐户ID。

授予特权

GRANT命令用于将数据库对象上的一个或多个特权分配给用户或数据库。

句法

以下是GRANT命令的语法。

GRANT privileges ON objectname TO username;

注意特权可以是INSERT,SELECT,UPDATE,REFERENCES。

以下是GRANT语句的示例。

GRANT SELECT, INSERT, UPDATE ON Employee TO T001;

撤销特权

REVOKE命令从用户或数据库中删除特权。 REVOKE命令只能删除显式特权。

句法

以下是REVOKE命令的基本语法。

REVOKE [ALL/privileges] ON objectname FROM username;

下面是REVOKE命令的示例。

REVOKE INSERT, SELECT ON Employee FROM T001;