I have a collection that contains linked assets. I would like to override their materials and give them a unique material. Is it possible to assign a material to a whole collection, and how ?
You can override the materials from linked sources that are part of the same collection, just the same way you can override not linked ones.
In the scene context section you can find the options for override, you can select a single material and that will be used for all objects.
From the blender manual:
Overrides all material settings to use the Material chosen here.
Examples of where this might be used:
To check lighting by using a plain diffuse material on all objects. Render a wireframe of the scene. Create a custom render pass such as an anti-aliased matte or global coordinates.
If your model consists of only one object you can link the mesh/object data rather than the whole object, then create a new object in the scene and set the mesh/object data to the linked one. You can then add any material you want (as only the mesh is linked) and any changes done to the original mesh will still be made to the linked one. Note however that modifiers will not be linked this way and you will have to re-add them yourself.
Edit : Here is a clear answer with pictures :
4- Go to material settings for each object and change material link to object instead of data (data is the default option). You can also do this step before duplicating if the number of objects is big :
What i found is: Mark the whole Collection, press CTRL+L, select Material and select the material you want.
That will Link the selected material to the whole selection.
The only way to do this is to change the materials in the original file(s).
The whole purpose of linking is to have one source in eventually multiple projects. Change the source and all the projects get updated, that have links to that source.
In your case, the collection should be the source and other projects should create links to this collection. If you do it the opposite direction, the collection doesn't make much sense.