class_docstr: Additional methods;
  Public methods that can be used for test cases.
class_docstr_tok: ["Additional","methods",";","Public","methods","that","can","be","used","for","test","cases","."]
docstr: init a user and role, grant privilege to the role with the db, then bind the role to the user
  :param privilege_object: privilege object: Global, Collection, User
  :type privilege_object: str
  :param object_name: privilege object name
  :type object_name: str
  :param privilege: privilege
  :type privilege: str
  :param db_name: database name
  :type db_name: str
  :return: user name, user pwd, role name
  :rtype: str, str, str
docstr_tok: ["init","a","user","and","role",",","grant","privilege","to","the","role","with","the","db",",","then","bind","the","role","to","the","user",":","param","privilege_object",":","privilege","object",":","Global",",","Collection",",","User",":","type","privilege_object",":","str",":","param","object_name",":","privilege","object","name",":","type","object_name",":","str",":","param","privilege",":","privilege",":","type","privilege",":","str",":","param","db_name",":","database","name",":","type","db_name",":","str",":","return",":","user","name",",","user","pwd",",","role","name",":","rtype",":","str",",","str",",","str"]
code: def init_user_with_privilege(
      self, privilege_object, object_name, privilege, db_name="default"
  ):
      """
      init a user and role, grant privilege to the role with the db, then bind the role to the user
      :param privilege_object: privilege object: Global, Collection, User
      :type privilege_object: str
      :param object_name: privilege object name
      :type object_name: str
      :param privilege: privilege
      :type privilege: str
      :param db_name: database name
      :type db_name: str
      :return: user name, user pwd, role name
      :rtype: str, str, str
      """
      tmp_user = cf.gen_unique_str("user")
      tmp_pwd = cf.gen_unique_str("pwd")
      tmp_role = cf.gen_unique_str("role")
  
      # create user
      self.utility_wrap.create_user(tmp_user, tmp_pwd)
  
      # create role
      self.utility_wrap.init_role(tmp_role)
      self.utility_wrap.create_role()
  
      # grant privilege to the role
      self.utility_wrap.role_grant(
          object=privilege_object,
          object_name=object_name,
          privilege=privilege,
          db_name=db_name,
      )
  
      # bind the role to the user
      self.utility_wrap.role_add_user(tmp_user)
  
      return tmp_user, tmp_pwd, tmp_role
  
imports: from numpy.core.fromnumeric import _partition_dispatcher
  import pytest
  import sys
  from pymilvus import DefaultConfig
  from base.database_wrapper import ApiDatabaseWrapper
  from base.connections_wrapper import ApiConnectionsWrapper
  from base.collection_wrapper import ApiCollectionWrapper
  from base.partition_wrapper import ApiPartitionWrapper
  from base.index_wrapper import ApiIndexWrapper
  from base.utility_wrapper import ApiUtilityWrapper
  from base.schema_wrapper import ApiCollectionSchemaWrapper, ApiFieldSchemaWrapper
  from base.high_level_api_wrapper import HighLevelApiWrapper
  from utils.util_log import test_log
  from common import common_func
  from common import common_type
  from pymilvus import ResourceGroupInfo
label_desc: Use image node_id 10 for calling the TestcaseBase obj's underlying member method code with example usage: obj.init_user_with_privilege(privilege_object, object_name, privilege, db_name) and returns: tmp_user,  tmp_pwd,  tmp_role