8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 20:43:02 +01:00

Introduced new system privilege MODIFY_EXT_CONN_POOL to manage pool properties.

Update the documentation.
This commit is contained in:
hvlad 2018-05-20 23:44:12 +03:00
parent 721edeeb5b
commit da10e5045e
4 changed files with 15 additions and 5 deletions

View File

@ -555,6 +555,7 @@ USE_GRANTED_BY_CLAUSE Use GRANTED BY in GRANT and REVOKE operators
GRANT_REVOKE_ON_ANY_OBJECT GRANT and REVOKE rights on any object in database
GRANT_REVOKE_ANY_DDL_RIGHT GRANT and REVOKE any DDL rights
CREATE_PRIVILEGED_ROLES Use SET SYSTEM PRIVILEGES in roles
MODIFY_EXT_CONN_POOL Manage properties of pool of external connections
22) New grantee type in GRANT and REVOKE operators - SYSTEM PRIVILEGE.

View File

@ -52,8 +52,12 @@ Pool management:
When prepared it desribed as DDL statement but have immediate effect: i.e.
it is executed immediately and completely, not waiting for transaction commit.
Changes applied to the in-memory instance of the pool in current Firebird
process. Therefore change in one Classic process doesn't affect other Classic
processes. Changes is not persistent and after restart Firebird will use pool
settings at firebird.conf (see below).
"ALTER DATABASE" permission is required to run the statement.
New system privilege "MODIFY_EXT_CONN_POOL" is required to run the statement.
The full syntax is:
@ -76,7 +80,7 @@ The full syntax is:
Disassotiates all active connections off the pool (such connections will be
closed immediately when gets unused).
- ALTER EXTERNAL CONNECTIONS POOL CLEAR OLD
- ALTER EXTERNAL CONNECTIONS POOL CLEAR OLDEST
Closes expired idle connections.
The state of external connections pool could be queried using new context

View File

@ -1155,7 +1155,9 @@ void AlterCharSetNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch
bool AlterEDSPoolSetNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
SCL_check_database(tdbb, SCL_alter); // TODO
if (!tdbb->getAttachment()->locksmith(tdbb, MODIFY_EXT_CONN_POOL))
status_exception::raise(Arg::Gds(isc_miss_prvlg) << "MODIFY_EXT_CONN_POOL");
return true;
}
@ -1190,7 +1192,9 @@ void AlterEDSPoolSetNode::execute(thread_db* tdbb, DsqlCompilerScratch* /*dsqlSc
bool AlterEDSPoolClearNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
SCL_check_database(tdbb, SCL_alter); // TODO
if (!tdbb->getAttachment()->locksmith(tdbb, MODIFY_EXT_CONN_POOL))
status_exception::raise(Arg::Gds(isc_miss_prvlg) << "MODIFY_EXT_CONN_POOL");
return true;
}

View File

@ -63,6 +63,7 @@ SYSTEM_PRIVILEGE(GRANT_REVOKE_ON_ANY_OBJECT)
SYSTEM_PRIVILEGE(GRANT_REVOKE_ANY_DDL_RIGHT)
SYSTEM_PRIVILEGE(CREATE_PRIVILEGED_ROLES)
SYSTEM_PRIVILEGE(GET_DBCRYPT_KEY_NAME)
SYSTEM_PRIVILEGE(MODIFY_EXT_CONN_POOL)
#ifdef FB_JRD_SYSTEM_PRIVILEGES_TMP
maxSystemPrivilege