I would like to know is there any update about protecting DB Structure?
The short answer is there has been no change, it's a fool's errand.
I want the best practice to encrypt/Secure/ Lock the data structure and relation from end client DBA.
Using SQL Server, there isn't one. If you want to do this, make something wholly propriety for the data layer.
The fear is reverse engineering the solution (and it already happened once) using the database scheme.
Then this should be solved via litigation or by changing the data layer to something less well known or propriety. I hate security through obscurity as it doesn't work, at all, so propriety will work so long as no one really cares to reverse your code or attach a debugger.
Here's the problem you're going to continue to face, no matter what - propriety, encrypted, or whatever... The other party owns the hardware and thus can duplicate the hardware/software and then attach a debugger to it and see whatever they want. That's up to you to weigh the options of picking and choosing protection schemes.
SQL Server Administrators can see everything in the database (schema wise) and can easily take over the instance if the hardware owner does not have an administrative login (again they own the hardware). Database users that have enough permissions can see the schema. In fact, just using your application the user could guess most of the schema, let alone if you have any areas for input that they could abuse to find out more information.
so we need to run our app in a secured environment and it is using only local DB.
If they own the hardware, this is impossible as the environment is no longer secured.
We can't use Azure as client site doesn't have internet connection.
This means you also can't host it on premises, it's only available on theirs - so again, nothing you can really do that it's so above and beyond that it would add a large financial and technical burden into your software.
Nothing you can really do, use litigation as a means to deter or financially ruin those who violate the rules.