Teradata Vantage 17.10 LDAP用户自动同步配置求助
Teradata Vantage 17.10 LDAP自动用户同步及相关问题解决
背景现状
- Teradata Vantage 17.10已完成LDAP基础配置,现有同名Teradata用户可通过LDAP登录,密码修改同步正常,LDAP新用户能访问Teradata Viewpoint
- 核心问题:LDAP新用户无法通过TD-Studio登录,必须手动创建同名Teradata用户,需实现LDAP用户自动同步到Teradata
已尝试操作及报错
- 尝试通过配置文件、用户-配置文件关联+角色设置实现自动同步,但TDNEGOCONF工具在17.10版本中已废弃,无法使用
- 按文档创建同名Teradata用户及外部角色,执行授权时触发报错:
Executed as Single statement. Failed [5930 : HY000] External role 'ldapAdmin' may not be granted in the database.
不清楚需更新哪个配置文件 - 修改LDAP schema加载脚本(移除
-z参数,禁用TSL/Kerberos),添加-b参数后仍报错,错误信息包含:Invalid DN syntax(34)No such attribute(16)
针对性解决方案
1. 启用LDAP自动用户创建(替代TDNEGOCONF)
Teradata 17.10用tdconfig工具替代TDNEGOCONF,配置自动创建用户:
- 开启自动创建开关:
tdconfig -s LDAPAutoCreateUsers -v TRUE - 指定自动创建用户的默认配置文件(需提前创建好配置文件,比如
DefaultProfile):tdconfig -s LDAPAutoCreateDefaultProfile -v "DefaultProfile" - 可选:设置自动继承LDAP组对应的外部角色:
tdconfig -s LDAPAutoCreateRoles -v "ldapAdmin"
2. 解决外部角色授权5930报错
外部角色不能在数据库内部直接授权,需按以下步骤操作:
- 先创建关联LDAP组的外部角色(确保LDAP组DN正确):
CREATE EXTERNAL ROLE ldapAdmin FROM LDAP GROUP 'cn=ldapAdmins,ou=Groups,dc=yourdomain,dc=com'; - 在系统层面给外部角色授予数据库权限,而非数据库内执行授权:
GRANT SELECT, INSERT ON DATABASE your_db TO EXTERNAL ROLE ldapAdmin; - 若需让自动创建的用户继承角色,确保
LDAPAutoCreateRoles参数已配置正确(见上方步骤)
3. 解决LDAP schema加载脚本的DN/属性错误
- 修正DN语法:检查
-b参数的基准DN格式,必须符合LDAP规范,示例:
避免DN中出现多余空格、引号格式错误# 正确格式示例 ldapsearch -h your_ldap_host -p 389 -b "ou=Users,dc=yourdomain,dc=com" -s sub "(objectClass=inetOrgPerson)" uid - 确认LDAP属性存在:脚本中引用的属性(如
uid、cn)必须在LDAP用户条目中存在,若用AD环境,需改用sAMAccountName作为用户名属性:ldapsearch -h ad_host -p 389 -b "OU=Users,DC=ad,DC=domain,DC=com" -s sub "(objectClass=user)" sAMAccountName - 移除脚本中无效参数:确保没有引用已废弃或不兼容的参数,17.10不需要
-z参数(TSL相关),保持脚本简洁
内容的提问来源于stack exchange,提问作者Ahmad786
相关产品推荐
相关产品推荐

