Probably best to use a separate key per dataset --- although if you know that a set of datasets will always be shared together then you could use the same key. There is no way to revoke access conveniently (though technically once someone has access they could download all the data), and you have to be careful not to accidentally leak the key, e.g. via neuroglancer urls.
If you create your own server you will also have to implement authentication (in neuroglancer) as well, unfortunately. However, I think supporting http basic auth or cookie-based auth would be fairly easy --- you would just need to modify the precomputed datasource code to tell the browser to send credentials.