mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 20:43:02 +01:00
Misc.
This commit is contained in:
parent
8dfe0836bc
commit
19788ff96d
@ -18,7 +18,7 @@ CREATE [OR ALTER] PACKAGE <PACKAGENAME> [SQL SECURITY {DEFINER | INVOKER}] AS ..
|
|||||||
Description:
|
Description:
|
||||||
|
|
||||||
Makes it possible to execute some objects with permissions of either definer or invoker.
|
Makes it possible to execute some objects with permissions of either definer or invoker.
|
||||||
By default INVOKER is used to keep backword compatibility.
|
By default INVOKER is used to keep backward compatibility.
|
||||||
|
|
||||||
If INVOKER is specified a current set of privileges of the current user will be used.
|
If INVOKER is specified a current set of privileges of the current user will be used.
|
||||||
If DEFINER - a set of privileges of object owner will be used to check an access to database objects used by this object.
|
If DEFINER - a set of privileges of object owner will be used to check an access to database objects used by this object.
|
||||||
@ -154,6 +154,7 @@ commit;
|
|||||||
connect 'localhost:/tmp/69.fdb' user us password 'pas';
|
connect 'localhost:/tmp/69.fdb' user us password 'pas';
|
||||||
select pk.f(3) from rdb$database;
|
select pk.f(3) from rdb$database;
|
||||||
|
|
||||||
|
|
||||||
Example 6. Altering explicit option SQL SECURITY for triggers.
|
Example 6. Altering explicit option SQL SECURITY for triggers.
|
||||||
To remove explicit SQL SECURITY OPTION from trigger you can execute:
|
To remove explicit SQL SECURITY OPTION from trigger you can execute:
|
||||||
alter trigger tr_ins drop sql security;
|
alter trigger tr_ins drop sql security;
|
||||||
|
@ -2012,15 +2012,15 @@ void put_int64(att_type attribute, SINT64 value)
|
|||||||
|
|
||||||
void put_boolean(att_type attribute, const FB_BOOLEAN value)
|
void put_boolean(att_type attribute, const FB_BOOLEAN value)
|
||||||
{
|
{
|
||||||
/**************************************
|
/**************************************
|
||||||
*
|
*
|
||||||
* p u t _ b o o l e a n
|
* p u t _ b o o l e a n
|
||||||
*
|
*
|
||||||
**************************************
|
**************************************
|
||||||
*
|
*
|
||||||
* Functional description
|
* Functional description
|
||||||
* Write a FB_BOOLEAN value as an attribute.
|
* Write a FB_BOOLEAN value as an attribute.
|
||||||
**************************************/
|
**************************************/
|
||||||
BurpGlobals* tdgbl = BurpGlobals::getSpecific();
|
BurpGlobals* tdgbl = BurpGlobals::getSpecific();
|
||||||
|
|
||||||
put(tdgbl, attribute);
|
put(tdgbl, attribute);
|
||||||
|
@ -198,7 +198,8 @@ Version 9: FB2.5.
|
|||||||
Version 10: FB3.0.
|
Version 10: FB3.0.
|
||||||
See backup_capabilities in OdsDetection.h.
|
See backup_capabilities in OdsDetection.h.
|
||||||
|
|
||||||
Version 11: FB 4.0
|
Version 11: FB4.0.
|
||||||
|
SQL SECURITY feature.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const int ATT_BACKUP_FORMAT = 11;
|
const int ATT_BACKUP_FORMAT = 11;
|
||||||
|
@ -7333,7 +7333,7 @@ bool get_relation(BurpGlobals* tdgbl)
|
|||||||
rel_desc = isc_blob_null, ext_desc = isc_blob_null;
|
rel_desc = isc_blob_null, ext_desc = isc_blob_null;
|
||||||
bool view_blr_null = true, view_src_null = true, rel_desc_null = true,
|
bool view_blr_null = true, view_src_null = true, rel_desc_null = true,
|
||||||
ext_desc_null = true;
|
ext_desc_null = true;
|
||||||
FB_BOOLEAN sql_security = 0;
|
FB_BOOLEAN sql_security = FB_FALSE;
|
||||||
bool sql_security_null = true;
|
bool sql_security_null = true;
|
||||||
|
|
||||||
BASED_ON RDB$RELATIONS.RDB$SECURITY_CLASS sec_class;
|
BASED_ON RDB$RELATIONS.RDB$SECURITY_CLASS sec_class;
|
||||||
|
@ -6440,7 +6440,7 @@ DmlNode* StoreNode::parse(thread_db* tdbb, MemoryPool& pool, CompilerScratch* cs
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
StmtNode* StoreNode::internalDsqlPass(DsqlCompilerScratch* dsqlScratch,
|
StmtNode* StoreNode::internalDsqlPass(DsqlCompilerScratch* dsqlScratch,
|
||||||
bool updateOrInsert, bool& needSavePoint)
|
bool updateOrInsert, bool& needSavePoint)
|
||||||
{
|
{
|
||||||
thread_db* tdbb = JRD_get_thread_data(); // necessary?
|
thread_db* tdbb = JRD_get_thread_data(); // necessary?
|
||||||
@ -6608,7 +6608,7 @@ StmtNode* StoreNode::internalDsqlPass(DsqlCompilerScratch* dsqlScratch,
|
|||||||
StmtNode* StoreNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
|
StmtNode* StoreNode::dsqlPass(DsqlCompilerScratch* dsqlScratch)
|
||||||
{
|
{
|
||||||
bool needSavePoint;
|
bool needSavePoint;
|
||||||
StmtNode* node = SavepointEncloseNode::make(getPool(), dsqlScratch,
|
StmtNode* node = SavepointEncloseNode::make(getPool(), dsqlScratch,
|
||||||
internalDsqlPass(dsqlScratch, false, needSavePoint));
|
internalDsqlPass(dsqlScratch, false, needSavePoint));
|
||||||
|
|
||||||
if (!needSavePoint || node->is<SavepointEncloseNode>())
|
if (!needSavePoint || node->is<SavepointEncloseNode>())
|
||||||
|
@ -1560,7 +1560,7 @@ void CCH_must_write(thread_db* tdbb, WIN* window)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bdb->bdb_flags |= BDB_must_write | BDB_dirty;
|
bdb->bdb_flags |= BDB_must_write | BDB_dirty;
|
||||||
fb_assert(bdb->bdb_flags & BDB_nbak_state_lock ||
|
fb_assert(bdb->bdb_flags & BDB_nbak_state_lock ||
|
||||||
PageSpace::isTemporary(bdb->bdb_page.getPageSpaceID()));
|
PageSpace::isTemporary(bdb->bdb_page.getPageSpaceID()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user