diff --git a/db/HGPdtToolDb/HGPdtToolDb.h b/db/HGPdtToolDb/HGPdtToolDb.h index 7f647e9..f7d4905 100644 --- a/db/HGPdtToolDb/HGPdtToolDb.h +++ b/db/HGPdtToolDb/HGPdtToolDb.h @@ -125,7 +125,7 @@ HGEXPORT HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, cons /* 修改本账户的密码 */ HGEXPORT HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* oldPwd, const HGChar* newPwd); -/* 导出所有设备测试信息到XLS文件,需要管理员账户才能调用 */ +/* 导出所有设备测试信息到XLS文件 */ HGEXPORT HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar *xlsPath); /* 获取用户配置 */ diff --git a/db/HGPdtToolDb/HGPdtToolDbImpl.cpp b/db/HGPdtToolDb/HGPdtToolDbImpl.cpp index 3efe4bd..557e10d 100644 --- a/db/HGPdtToolDb/HGPdtToolDbImpl.cpp +++ b/db/HGPdtToolDb/HGPdtToolDbImpl.cpp @@ -229,7 +229,7 @@ HGResult HGPdtToolDbUserMgrImpl::GetUserList(HGChar** userNameList, HGUInt maxLe } char sqlCmd[1024] = {0}; - sprintf(sqlCmd, "select user, host from mysql.user"); + sprintf(sqlCmd, "select user, host from mysql.user;"); int ret = mysql_query(m_sql, sqlCmd); if (0 != ret) { @@ -305,9 +305,20 @@ HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar } char sqlCmd[1024] = {0}; - sprintf(sqlCmd, "grant all privileges on huago_production_tool.* to '%s'@'%%' identified by '%s';", userName, defPwd); + sprintf(sqlCmd, "create user '%s'@'%%' identified by '%s';", userName, defPwd); int ret = mysql_query(m_sql, sqlCmd); - return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL; + if (0 != ret) + { + return HGBASE_ERR_FAIL; + } + + sprintf(sqlCmd, "grant all privileges on huago_production_tool.* to '%s'@'%%';", userName); + ret = mysql_query(m_sql, sqlCmd); + assert(0 == ret); + sprintf(sqlCmd, "grant select on mysql.user to '%s'@'%%';", userName); + ret = mysql_query(m_sql, sqlCmd); + assert(0 == ret); + return HGBASE_ERR_OK; } HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName) @@ -335,6 +346,9 @@ HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName) } char sqlCmd[1024] = { 0 }; + sprintf(sqlCmd, "drop table %s_config;", userName); + mysql_query(m_sql, sqlCmd); + sprintf(sqlCmd, "drop user '%s'@'%%';", userName); int ret = mysql_query(m_sql, sqlCmd); return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL; @@ -395,7 +409,7 @@ HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* oldPwd, const HGCh if (oldAuthStr.empty()) { - return HGBASE_ERR_FAIL; + return HGBASE_ERR_ACCESSDENIED; } std::string oldAuthStr2; @@ -435,13 +449,6 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath) return HGBASE_ERR_INVALIDARG; } - HGUInt userType = 0; - GetUserType(&userType); - if (HGPDTTOOLDB_USERTYPE_ROOT != userType) - { - return HGBASE_ERR_ACCESSDENIED; - } - std::string cmd = "select main_test.sn"; cmd += ", main_test.create_time"; cmd += ", main_test.create_user"; @@ -639,7 +646,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu } char sqlCmd[1024] = {0}; - sprintf(sqlCmd, "insert into %s_config (config_key, config_value) values ('%s', '%s')", + sprintf(sqlCmd, "insert into %s_config (config_key, config_value) values ('%s', '%s');", m_userName.c_str(), key, (NULL != value) ? value : ""); int ret = mysql_query(m_sql, sqlCmd); if (0 == ret) @@ -649,7 +656,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu if (1062 == mysql_errno(m_sql)) { - sprintf(sqlCmd, "update %s_config set config_value = '%s' where config_key = '%s'", + sprintf(sqlCmd, "update %s_config set config_value = '%s' where config_key = '%s';", m_userName.c_str(), (NULL != value) ? value : "", key); int ret = mysql_query(m_sql, sqlCmd); return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL; @@ -729,7 +736,7 @@ int HGPdtToolDbUserMgrImpl::CreateUserConfigTable(MYSQL* sql, const HGChar* user assert(NULL != user && 0 != *user); char sqlCmd[1024] = {0}; - sprintf(sqlCmd, "create table if not exists %s_config (config_key varchar(40) not null primary key, config_value text)", user); + sprintf(sqlCmd, "create table if not exists %s_config (config_key varchar(40) not null primary key, config_value text);", user); return mysql_query(sql, sqlCmd); } diff --git a/db/HGPdtToolDbTest/HGPdtToolDbTest.cpp b/db/HGPdtToolDbTest/HGPdtToolDbTest.cpp index aced5ee..bd22b3f 100644 --- a/db/HGPdtToolDbTest/HGPdtToolDbTest.cpp +++ b/db/HGPdtToolDbTest/HGPdtToolDbTest.cpp @@ -5,7 +5,7 @@ int main() { HGPdtToolDbUserMgr userMgr = NULL; - HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "root", "123456", &userMgr); + HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "huago", "123456", &userMgr); if (NULL != userMgr) { HGChar* name[256]; @@ -14,8 +14,8 @@ int main() //HGPdtToolDb_DestroyUser(userMgr, "huago"); - //HGPdtToolDb_CreateUser(userMgr, "huago", "huago"); - HGPdtToolDb_ModifyPassword(userMgr, "12345", "123456"); + //HGPdtToolDb_CreateUser(userMgr, "huago", "123456"); + HGPdtToolDb_ModifyPassword(userMgr, "123456", "huago"); //HGPdtToolDb_SetPassword(userMgr, "huago", "qqq"); HGPdtToolDbDevice device = NULL;