如何创建由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
角色的用户执行。