Um padrão típico é esquemas baseados em permissões, portanto, você teria WebGUI, Desktopetc , para código, para que todos os objetos tenham as mesmas permissões do esquema .
Se você tiver grupos de usuários claros, poderá obter permissão, mas você terá permissões sobrepostas e confusas em algum momento. Costumo adiar as verificações de usuário / grupo para algumas verificações dentro do código e não de objetos de permissão: digamos que você tenha usuários de Admin e RH do Excel: todos eles executam Desktopcódigo.
Os dados geralmente são compartilhados, então eu teria um Dataesquema, talvez um Historyou Archiveesquema.
Como algum código não é público (como um UDF ou um processo interno), use um Helperesquema para código que não deve ser executado pelo código do cliente.
Finalmente, esquemas como Stagingou Systemou Maintenancesão úteis às vezes.
Embora não haja objetos de usuário no dboesquema, o usuário dbopossui todos os esquemas.