private void grantRight(DbObject object) { Database db = session.getDatabase(); Right right = grantee.getRightForObject(object); if (right == null) { int id = getObjectId(); right = new Right(db, id, grantee, rightMask, object); grantee.grantRight(object, right); db.addDatabaseObject(session, right); } else { right.setRightMask(right.getRightMask() | rightMask); db.updateMeta(session, right); } }
public String getRights() { StringBuilder buff = new StringBuilder(); if (grantedRight == ALL) { buff.append("ALL"); } else { boolean comma = false; comma = appendRight(buff, grantedRight, SELECT, "SELECT", comma); comma = appendRight(buff, grantedRight, DELETE, "DELETE", comma); comma = appendRight(buff, grantedRight, INSERT, "INSERT", comma); comma = appendRight(buff, grantedRight, ALTER_ANY_SCHEMA, "ALTER ANY SCHEMA", comma); appendRight(buff, grantedRight, UPDATE, "UPDATE", comma); } return buff.toString(); }
@Override public String getCreateSQLForCopy(Table table, String quotedName) { return getCreateSQLForCopy(table); }
@Override public void removeChildrenAndResources(Session session) { if (grantedRole != null) { grantee.revokeRole(grantedRole); } else { grantee.revokeRight(grantedObject); } database.removeMeta(session, getId()); grantedRole = null; grantedObject = null; grantee = null; invalidate(); }
private void revokeRight(DbObject object) { Right right = grantee.getRightForObject(object); if (right == null) { return; } int mask = right.getRightMask(); int newRight = mask & ~rightMask; Database db = session.getDatabase(); if (newRight == 0) { db.removeDatabaseObject(session, right); } else { right.setRightMask(newRight); db.updateMeta(session, right); } }
if (admin) { for (Right r : database.getAllRights()) { Role role = r.getGrantedRole(); DbObject grantee = r.getGrantee(); String rightType = grantee.getType() == DbObject.USER ? "USER" : "ROLE"; if (role == null) { DbObject object = r.getGrantedObject(); Schema schema = null; Table table = null; r.getRights(), "" + r.getId() ); } else { DbObject object = r.getGrantedObject(); if (!(object instanceof Table)) { continue; addPrivileges(rows, r.getGrantee(), catalog, table, null, r.getRightMask()); DbObject object = r.getGrantedObject(); if (!(object instanceof Table)) { continue; DbObject grantee = r.getGrantee();
for (int i = 0; i < rights.size(); i++) { Right r = (Right) rights.get(i); Role role = r.getGrantedRole(); DbObject grantee = r.getGrantee(); String type = grantee.getType() == DbObject.USER ? "USER" : "ROLE"; if (role == null) { Table granted = r.getGrantedTable(); String tableName = identifier(granted.getName()); if (!checkIndex(session, tableName, indexFrom, indexTo)) { r.getRights(), // RIGHTS "" + r.getId() // ID }); } else { "", // TABLE_SCHEMA "", // TABLE_NAME "" + r.getId() // ID }); for (int i = 0; i < rights.size(); i++) { Right r = (Right) rights.get(i); Table table = r.getGrantedTable(); if (table == null) { continue; addPrivileges(rows, r.getGrantee(), catalog, table, null, r.getRightMask());
@Override public ArrayList<DbObject> getChildren() { ArrayList<DbObject> children = New.arrayList(); for (Right right : database.getAllRights()) { if (right.getGrantee() == this) { children.add(right); } } for (Schema schema : database.getAllSchemas()) { if (schema.getOwner() == this) { children.add(schema); } } return children; }
DbObject object = right.getGrantedObject(); if (object != null) { if (object instanceof Schema) { add(right.getCreateSQL(), false);
public Right(Database db, int id, RightOwner grantee, Role grantedRole) { initDbObjectBase(db, id, "RIGHT_" + id, Trace.USER); this.grantee = grantee; this.grantedRole = grantedRole; }
private void grantRole(Role grantedRole) { if (grantedRole != grantee && grantee.isRoleGranted(grantedRole)) { return; } if (grantee instanceof Role) { Role granteeRole = (Role) grantee; if (grantedRole.isRoleGranted(granteeRole)) { // cyclic role grants are not allowed throw DbException.get(ErrorCode.ROLE_ALREADY_GRANTED_1, grantedRole.getSQL()); } } Database db = session.getDatabase(); int id = getObjectId(); Right right = new Right(db, id, grantee, grantedRole); db.addDatabaseObject(session, right); grantee.grantRole(grantedRole, right); }
private String getCreateSQLForCopy(DbObject object) { StringBuilder buff = new StringBuilder(); buff.append("GRANT "); if (grantedRole != null) { buff.append(grantedRole.getSQL()); } else { buff.append(getRights()); if (object != null) { if (object instanceof Schema) { buff.append(" ON SCHEMA ").append(object.getSQL()); } else if (object instanceof Table) { buff.append(" ON ").append(object.getSQL()); } } } buff.append(" TO ").append(grantee.getSQL()); return buff.toString(); }
right = grantedRights.get(table.getSchema()); if (right != null) { if ((right.getRightMask() & rightMask) == rightMask) { return true; if ((right.getRightMask() & rightMask) == rightMask) { return true;
for (int i = 0; i < rights.size(); i++) { Right right = (Right) rights.get(i); add(right.getCreateSQL(), false);
if (admin) { for (Right r : database.getAllRights()) { Role role = r.getGrantedRole(); DbObject grantee = r.getGrantee(); String rightType = grantee.getType() == DbObject.USER ? "USER" : "ROLE"; if (role == null) { DbObject object = r.getGrantedObject(); Schema schema = null; Table table = null; r.getRights(), "" + r.getId() ); } else { DbObject object = r.getGrantedObject(); if (!(object instanceof Table)) { continue; addPrivileges(rows, r.getGrantee(), catalog, table, null, r.getRightMask()); DbObject object = r.getGrantedObject(); if (!(object instanceof Table)) { continue; DbObject grantee = r.getGrantee();
public void removeChildrenAndResources(Session session) throws SQLException { if (grantedTable != null) { grantee.revokeRight(grantedTable); } else { grantee.revokeRole(session, grantedRole); } database.removeMeta(session, getId()); grantedRole = null; grantedTable = null; grantee = null; invalidate(); }
private void revokeRight(DbObject object) { Right right = grantee.getRightForObject(object); if (right == null) { return; } int mask = right.getRightMask(); int newRight = mask & ~rightMask; Database db = session.getDatabase(); if (newRight == 0) { db.removeDatabaseObject(session, right); } else { right.setRightMask(newRight); db.updateMeta(session, right); } }
@Override public void removeChildrenAndResources(Session session) { for (Right right : database.getAllRights()) { if (right.getGrantee() == this) { database.removeDatabaseObject(session, right); } } database.removeMeta(session, getId()); salt = null; Arrays.fill(passwordHash, (byte) 0); passwordHash = null; invalidate(); }
DbObject object = right.getGrantedObject(); if (object != null) { if (object instanceof Schema) { add(right.getCreateSQL(), false);
public Right(Database db, int id, RightOwner grantee, int grantedRight, DbObject grantedObject) { initDbObjectBase(db, id, "" + id, Trace.USER); this.grantee = grantee; this.grantedRight = grantedRight; this.grantedObject = grantedObject; }