创建 SQL Server 数据库的用户和模式

创建 SQL Server 数据库之后必须创建用户和模式。

开始之前

IBM® Business Process Manager 数据库用户分配给以下三个角色:
注: 该数据库必须由数据库管理员创建,该管理员可以将这些角色分配给 IBM Business Process Manager 的数据库用户。
  • db_ddladmin
  • db_datawriter
  • db_datareader
有关这些角色提供的许可权的信息,请参阅 Microsoft 文档。
要点: 在 Microsoft SQL Server 中,与用户关联的缺省模式名称必须与用户名相同。例如,如果 Performance Data Warehouse 数据库的用户名为 dbuser,那么与用户 dbuser 关联的缺省模式名称也必须是 dbuser。您必须创建普通数据库用户并将所需权限分配给该用户,而不是使用超级用户(例如,sa)。这是因为超级用户的缺省模式是 dbo,而且此模式不能更改。
如果现有表未与具有和用户名相同名称的模式关联,那么可以完成以下步骤。
  1. 在 SQL Server Management Studio Object Explorer 中,右键单击表名称,然后单击设计
  2. 从“设计”视图中,按 F4 键以查看“属性”窗口。
  3. 从“属性”窗口中更新模式名称。
  4. 右键单击选项卡并选择关闭以关闭“设计”视图。
  5. 提示保存时单击确定。所选表会传输到该模式。
  6. 针对 Performance Data Warehouse 数据库中的所有表重复先前的步骤。

关于此任务

使用 Windows 认证时,必须确保将域帐户添加到 SQL Server 登录。必须以 SQL Server 管理员身份登录,并遵循以下步骤以创建用户和模式进行 Windows 认证。

过程

  1. 使用机器的登录信息为您的 Windows 机器创建 SQL Server 登录帐户。 例如,如果 domain1 是域名,user1 是 Windows 机器的用户名,请使用以下命令语法:
    USE MASTER
    GO
    CREATE LOGIN [domain1\user1] FROM WINDOWS
    GO
    注: 所创建的 SQL Server 登录不能有 SYSADMIN 权限。如果登录用户拥有 SYSADMIN 权限,那么 SQL Server 会忽略用于数据库连接的指定模式值,因为 sysadmin 用户的缺省模式始终是 dbo
  2. 更新主数据库以对 Windows 用户授予 XA 事务的许可权。 请使用以下命令语法:
    USE MASTER
    GO
    CREATE USER sqluser FOR LOGIN [domain1\user1] WITH DEFAULT_SCHEMA=sqluser
    GO
    EXEC sp_addrolemember N'SqlJDBCXAUser', N'sqluser';GO
  3. 对于您创建的各个数据库,必须为 SQL Server 登录设置缺省模式。 请使用以下命令语法:
    USE BPMDB
    GO
    CREATE USER sqluser FOR LOGIN [domain1\user1] WITH DEFAULT_SCHEMA=sqluser
    GO
    CREATE SCHEMA sqluser AUTHORIZATION sqluser
    GO
    EXEC sp_addrolemember 'db_ddladmin', 'sqluser';
    EXEC sp_addrolemember 'db_datareader', 'sqluser';
    EXEC sp_addrolemember 'db_datawriter', 'sqluser';

下一步做什么

使用生成的脚本创建数据库模式时,您的用户标识必须有权创建表。创建表时,您必须有权选择、插入、更新和删除表中的信息。

下表描述访问数据存储所需的数据库特权。
表 1. 数据库特权
在数据库中创建对象所需的最低特权 在数据库中访问对象所需的最低特权
理想情况下,用户标识需要用于 IBM Business Process Manager 的数据存储器的 DB OWNER 特权。 配置 SQL Server for SQL Server 和 Windows 认证,以使认证基于 SQL Server 登录标识和密码。 用户标识必须是表的所有者,或者是有足够权限来发布 TRUNCATE TABLE 语句的组的成员。

请参阅SQL Server 数据库特权中的详细的 SQL Server 数据库权限表。