Search in sources :

Example 6 with MGlobalPrivilege

use of org.apache.hadoop.hive.metastore.model.MGlobalPrivilege in project hive by apache.

the class ObjectStore method removeRole.

@Override
public boolean removeRole(String roleName) throws MetaException, NoSuchObjectException {
    boolean success = false;
    QueryWrapper queryWrapper = new QueryWrapper();
    try {
        openTransaction();
        MRole mRol = getMRole(roleName);
        pm.retrieve(mRol);
        if (mRol != null) {
            // first remove all the membership, the membership that this role has
            // been granted
            List<MRoleMap> roleMap = listMRoleMembers(mRol.getRoleName());
            if (roleMap.size() > 0) {
                pm.deletePersistentAll(roleMap);
            }
            List<MRoleMap> roleMember = listMSecurityPrincipalMembershipRole(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (roleMember.size() > 0) {
                pm.deletePersistentAll(roleMember);
            }
            queryWrapper.close();
            // then remove all the grants
            List<MGlobalPrivilege> userGrants = listPrincipalMGlobalGrants(mRol.getRoleName(), PrincipalType.ROLE);
            if (userGrants.size() > 0) {
                pm.deletePersistentAll(userGrants);
            }
            List<MDBPrivilege> dbGrants = listPrincipalAllDBGrant(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (dbGrants.size() > 0) {
                pm.deletePersistentAll(dbGrants);
            }
            queryWrapper.close();
            List<MTablePrivilege> tabPartGrants = listPrincipalAllTableGrants(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (tabPartGrants.size() > 0) {
                pm.deletePersistentAll(tabPartGrants);
            }
            queryWrapper.close();
            List<MPartitionPrivilege> partGrants = listPrincipalAllPartitionGrants(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (partGrants.size() > 0) {
                pm.deletePersistentAll(partGrants);
            }
            queryWrapper.close();
            List<MTableColumnPrivilege> tblColumnGrants = listPrincipalAllTableColumnGrants(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (tblColumnGrants.size() > 0) {
                pm.deletePersistentAll(tblColumnGrants);
            }
            queryWrapper.close();
            List<MPartitionColumnPrivilege> partColumnGrants = listPrincipalAllPartitionColumnGrants(mRol.getRoleName(), PrincipalType.ROLE, queryWrapper);
            if (partColumnGrants.size() > 0) {
                pm.deletePersistentAll(partColumnGrants);
            }
            queryWrapper.close();
            // finally remove the role
            pm.deletePersistent(mRol);
        }
        success = commitTransaction();
    } finally {
        if (!success) {
            rollbackTransaction();
        }
        queryWrapper.close();
    }
    return success;
}
Also used : MRole(org.apache.hadoop.hive.metastore.model.MRole) MPartitionColumnPrivilege(org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege) MDBPrivilege(org.apache.hadoop.hive.metastore.model.MDBPrivilege) MGlobalPrivilege(org.apache.hadoop.hive.metastore.model.MGlobalPrivilege) MPartitionPrivilege(org.apache.hadoop.hive.metastore.model.MPartitionPrivilege) MRoleMap(org.apache.hadoop.hive.metastore.model.MRoleMap) MTablePrivilege(org.apache.hadoop.hive.metastore.model.MTablePrivilege) MTableColumnPrivilege(org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege)

Example 7 with MGlobalPrivilege

use of org.apache.hadoop.hive.metastore.model.MGlobalPrivilege in project hive by apache.

the class ObjectStore method getUserPrivilegeSet.

@Override
public PrincipalPrivilegeSet getUserPrivilegeSet(String userName, List<String> groupNames) throws InvalidObjectException, MetaException {
    boolean commited = false;
    PrincipalPrivilegeSet ret = new PrincipalPrivilegeSet();
    try {
        openTransaction();
        if (userName != null) {
            List<MGlobalPrivilege> user = this.listPrincipalMGlobalGrants(userName, PrincipalType.USER);
            if (user.size() > 0) {
                Map<String, List<PrivilegeGrantInfo>> userPriv = new HashMap<String, List<PrivilegeGrantInfo>>();
                List<PrivilegeGrantInfo> grantInfos = new ArrayList<PrivilegeGrantInfo>(user.size());
                for (int i = 0; i < user.size(); i++) {
                    MGlobalPrivilege item = user.get(i);
                    grantInfos.add(new PrivilegeGrantInfo(item.getPrivilege(), item.getCreateTime(), item.getGrantor(), getPrincipalTypeFromStr(item.getGrantorType()), item.getGrantOption()));
                }
                userPriv.put(userName, grantInfos);
                ret.setUserPrivileges(userPriv);
            }
        }
        if (groupNames != null && groupNames.size() > 0) {
            Map<String, List<PrivilegeGrantInfo>> groupPriv = new HashMap<String, List<PrivilegeGrantInfo>>();
            for (String groupName : groupNames) {
                List<MGlobalPrivilege> group = this.listPrincipalMGlobalGrants(groupName, PrincipalType.GROUP);
                if (group.size() > 0) {
                    List<PrivilegeGrantInfo> grantInfos = new ArrayList<PrivilegeGrantInfo>(group.size());
                    for (int i = 0; i < group.size(); i++) {
                        MGlobalPrivilege item = group.get(i);
                        grantInfos.add(new PrivilegeGrantInfo(item.getPrivilege(), item.getCreateTime(), item.getGrantor(), getPrincipalTypeFromStr(item.getGrantorType()), item.getGrantOption()));
                    }
                    groupPriv.put(groupName, grantInfos);
                }
            }
            ret.setGroupPrivileges(groupPriv);
        }
        commited = commitTransaction();
    } finally {
        if (!commited) {
            rollbackTransaction();
        }
    }
    return ret;
}
Also used : HashMap(java.util.HashMap) PrivilegeGrantInfo(org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo) PrincipalPrivilegeSet(org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet) ArrayList(java.util.ArrayList) MStringList(org.apache.hadoop.hive.metastore.model.MStringList) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) MGlobalPrivilege(org.apache.hadoop.hive.metastore.model.MGlobalPrivilege) MConstraint(org.apache.hadoop.hive.metastore.model.MConstraint)

Example 8 with MGlobalPrivilege

use of org.apache.hadoop.hive.metastore.model.MGlobalPrivilege in project hive by apache.

the class ObjectStore method listPrincipalMGlobalGrants.

@SuppressWarnings("unchecked")
public List<MGlobalPrivilege> listPrincipalMGlobalGrants(String principalName, PrincipalType principalType) {
    boolean commited = false;
    Query query = null;
    List<MGlobalPrivilege> userNameDbPriv = new ArrayList<MGlobalPrivilege>();
    try {
        List<MGlobalPrivilege> mPrivs = null;
        openTransaction();
        if (principalName != null) {
            query = pm.newQuery(MGlobalPrivilege.class, "principalName == t1 && principalType == t2 ");
            query.declareParameters("java.lang.String t1, java.lang.String t2");
            mPrivs = (List<MGlobalPrivilege>) query.executeWithArray(principalName, principalType.toString());
            pm.retrieveAll(mPrivs);
        }
        commited = commitTransaction();
        if (mPrivs != null) {
            userNameDbPriv.addAll(mPrivs);
        }
    } finally {
        if (!commited) {
            rollbackTransaction();
        }
        if (query != null) {
            query.closeAll();
        }
    }
    return userNameDbPriv;
}
Also used : Query(javax.jdo.Query) ArrayList(java.util.ArrayList) MGlobalPrivilege(org.apache.hadoop.hive.metastore.model.MGlobalPrivilege)

Aggregations

MGlobalPrivilege (org.apache.hadoop.hive.metastore.model.MGlobalPrivilege)8 ArrayList (java.util.ArrayList)7 LinkedList (java.util.LinkedList)4 List (java.util.List)4 HiveObjectPrivilege (org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege)4 HiveObjectRef (org.apache.hadoop.hive.metastore.api.HiveObjectRef)4 MStringList (org.apache.hadoop.hive.metastore.model.MStringList)4 PrincipalType (org.apache.hadoop.hive.metastore.api.PrincipalType)3 PrivilegeGrantInfo (org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo)3 MConstraint (org.apache.hadoop.hive.metastore.model.MConstraint)3 MDBPrivilege (org.apache.hadoop.hive.metastore.model.MDBPrivilege)3 MPartitionColumnPrivilege (org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege)3 MPartitionPrivilege (org.apache.hadoop.hive.metastore.model.MPartitionPrivilege)3 MTableColumnPrivilege (org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege)3 MTablePrivilege (org.apache.hadoop.hive.metastore.model.MTablePrivilege)3 Query (javax.jdo.Query)2 InvalidObjectException (org.apache.hadoop.hive.metastore.api.InvalidObjectException)2 MDatabase (org.apache.hadoop.hive.metastore.model.MDatabase)2 MTable (org.apache.hadoop.hive.metastore.model.MTable)2 HashMap (java.util.HashMap)1