Is it necessary to restrict other members from
creating/editing/deleting tasks even if they're not the one who
Yes, it is absolutely necessary and required to implement such restrictions and permissions in the Project Management System. Generally, these things should be controlled via Role that has been assigned to the different members using that system e.g. only Project Manager or Team Lead should be allowed to Delete tasks and other issues from the system, this way he/she will know which data is being cleared from the system and why it is being cleared, else everyone will start deleting records.
In similar way creating tasks should also be permission based, else all team members will start creating his/her own tasks in his/her own way (without any guidelines and syntax being followed, Believe me I have faced this issue personally in my project where at the end of the day every Developer and QA has created task for logging his/her own effort and title of any of those tasks doesn't make sense).
Scrum Master (Team Lead) should create the tasks for Developers and QAs and other team members for the User Stories to be delivered in the planned sprint. In this case even if he makes a mistake and that mistake will be same in all created tasks then the reviewer will know that he needs to update X with Y+2 (just example).
Coming to edit part, it should again be permission based, if any team member assigned some tasks found some issues with the created tasks, then he should go back to creator and then ask him to update the same, else it will again lead to a mess in the management system.
See, the whole idea is Management system is used for managing small or big projects, tasks of the users, Bugs, Defects, Effort etc. If management system is not designed in an intelligent way to manage itself than it will not be helpful in managing the projects.
If the task assigned to other person, can the people complete the said
Yes, ofcourse. Ideally the assigned person should complete the task but if the other person has knowledge and time to do so, he should complete the task (which generally happens), But only the assigned person should be allowed to change the status of the task to Complete or Closed. In this way everyone and especially the management will know who has actually done that particular task. So for this you management system will have to follow the process of re-assign that task to actual person working on it and then, he will change its status to complete. So when report is pulled from the system, each task has its actual performer.