• They told me they would like full control of the database.

    And I know what they need to do is to create objects in the database, import/export data, query database.

    To grant dbowner is simpler, but I know it may be not a good practice, for it even has permission to drop the database even I know they won't.

    If not dbowner role,

    Do I have to specific grant permission like dbreader, dbwriter, ddladmin, execute to all database etc.

    Just feel it is more procedure and hard to track, or later to check from UI.