LDAP与Sentry API使用

1、Apache Ldap API

持续发展的增强型LDAP API,用于代替JNDI、jLdap、Mozila LDAP等现存的LDAP API,是schema aware的,支持所有的LDAP server

获取用户与用户组间的映射关系

核心代码:

EntryCursor cursor = connection.search( "ou=system", "(objectclass=*)", SearchScope.ONELEVEL, "*" );
 
while ( cursor.next() )
{
    Entry entry = cursor.get();
 
    // Process the entry
    ...
}

2、Sentry API

(1)做组、角色、权限间的操作

含义

TSentryGroup

TSentryRole

角色

TSentryPrivilege

权限

(2)SentryPolicyServiceClient核心方法

获取权限情况

Set<TSentryPrivilege> listAllPrivilegesByRoleName(requestor, roleName)

根据角色名获取拥有的权限

Set<TSentryRole> listRolesByGroupName(requestor, groupName)

根据组名获取拥有的权限

角色管理

client.listAllRoles(requestor)

列出所有角色

createRole(requestor, roleName)

创建角色

dropRoleIfExists(requestor, roleName)

删除角色

赋权

grantDatabasePrivilege(requestor, roleName, server, db, action.getAction())

给某角色赋某库的权限

grantTablePrivilege(requestor, roleName, server, db, table, action.getAction())

给某角色赋某表的权限

grantColumnPrivilege(requestor, roleName, server, db, table, column, action.getAction())

给某角色赋某列的权限

收权

revokeDatabasePrivilege(requestor, roleName, server, db, action.getAction())

回收某用户对于某库的权限

revokeTablePrivilege(requestor, roleName, server, db, table, action.getAction())

回收某用户对于某表的权限

revokeColumnPrivilege(requestor, roleName, server, db, table, column, action.getAction())

回收某用户对于某列的权限

原文地址:https://www.cnblogs.com/codetouse/p/12745929.html