Before answering your question, I would like to point out the differences between hyperledger and ethereum.
While Ethereum is basically a public blockchain that works in a specifically intended manner, Hyperledger is basically an umbrella that enables distributed ledger technologies (not pertaining to blockchain only). Hyperledger actually makes it possible to architect ledger-based systems that are not only flexible but also feature many a property like a blockchain.
Now answering your questions one by one,
Where is the contract stored?
Initially, smart contracts are present in the chain. The code is converted to byte code and the resultant bytes are sent as a part of the transaction to be added to the ethereum blockchain.
With hyperledger, things are different. Depending on use- cases and the type of blockchain protocol which is being incorporated, the storage of contracts varies.
How other participants such as customs and importer can access this contract?
The code is simplified and publicly accessible. This means that users may be restricted in terms of who is allowed to view the smart contract.
The case is the same in Hyperledger too. However, based on the incorporated protocol, the authorization process may vary.
Can we activate participant level access to the contract on the blockchain?
Yes. This is possible.
Yes. This is possible. Moreover, Fabric features channels that can be used to partition the ledger for access control.
Know the blockchain better through Blockchain Certification by Intellipaat.