如何创建由SYSDBA以外的用户拥有的数据库?

问题描述:

当我发出一个isql命令:如何创建由SYSDBA以外的用户拥有的数据库?

create database "localhost:testdb.fdb" user milenio password "secret"; 

我得到以下错误:

Statement failed, SQLSTATE = 28000 
no permission for CREATE access to DATABASE testdb.fdb 

我缺少什么?我如何向用户milenio授予必要的权限?

在Firebird 3中,用户需要拥有RDB$ADMIN角色(并使用其登录),或者用户(或其当前角色)需要具有CREATE DATABASE特权才能创建数据库。

又见火鸟发行说明User Privileges for Metadata Changes

GRANT CREATE DATABASE TO [USER | ROLE] <user-name> | <role-name>; 

或者具体地说,这种特权授予用户milenio

grant create database to user milenio; 

后跟提交。

这需要由安全数据库上的SYSDBA或具有RDB$ADMIN角色的用户执行。