In theory anyone can raise a change request. It really depends on the policies in place. I can give you a few options:
When Problem Management determines that root cause of an incident and needs to make a change to fix the problem then a Change Record should be raised. This is more efficient if done automatically by the tool at the time of Problem determination.
When a user requires a small functionality change to an application then that could be raised as a Change Record either by a user-portal or a Service Desk analyst (this is different to major functionality changes that need to go through customers to the BRM).
When a developer or technical support analyst perceives a defect, error, or problem that requires a change, then they should raise a Change Request.
When any user or analyst identifies an opportunity for improvement then that can be raised in the Continual Improvement Register, which could then evolve into a Change Record following evaluation OR it can be raised immediately as a Change Record and be evaluated by the CAB. The latter would occur when Continual Improvement has not evolved within the organisation.
The best guidance I can give is to follow your internal policy, but best practice encourages the flexibility that allows all stakeholders to raise Change Requests. I hope that the examples will add some context for you.
Thanks very much